Koa2 莫名其妙来的静态资源访问请求,导致某些页面取不到静态文件.
发布于 7 年前 作者 995270418L 4191 次浏览 来自 问答

这里首页访问是’/posts’,基于koa-nunjucks-next中间件模板,单独的路由文件控制路由,没问题,可以取得静态资源。 当访问’/posts/create’时,就渲染不到了。一看所有的静态资源请求的路径前都添加了‘/posts/’这个路径,导致css,js渲染失败

//设定路由前缀
const router = new koaRouter({
	   prefix: '/posts'
});
router.get('/create',checkLogin,async (ctx,next) => {
	   console.log(ctx.url);
	   await ctx.render('create',{title: 'create'});
});

错误 error.jpg 正常静态文件路径请求 error2.jpg

设置静态文件目录(public)

app.use(server(__dirname,'/public'));

想了半天,从没遇到过这种“莫须有”的错误,都不知道客户端哪来的这个请求?怎么做到的。本人菜鸟,望高人指点指点迷津.

4 回复

把点去掉 变成/css/ 这样子的试试 untitled1.png

@jiangli373 666,其实一开始是 href="css/semantic.min.css"
后来我就改成了 ./css/semantic.min.css 发现还不管用,就没往这方向想去了。谢谢!谢谢!谢谢!真的谢谢!

@jiangli373 刚才就在查看chrome console source,发现首页的静态文件是在127.0.0.1:3000下面的文件夹分布的, 单个路径(’/xxx/)也是同样的情况,当访问二级地址(’/xxx/xxxx’)的时候就出现错误了,那时候的静态文件就出现在 127.0.0.1:3000 /xxx 的路径里面了,怪不得会出现那样的情况,‘./‘和’/'就相当于是相对路径和绝对路径的区别,谢谢!

@995270418L 没想到客户端也会出现这种差别

回到顶部