今天写koa框架,路由使用的是koa-router中间件,静态资源使用的是koa-static中间件。
如果路由是下面这一种:
router.use('/index',function *(next){
yield 渲染模板
})
页面渲染没有问题。
但是如果是下面这一种
router
.get('/users/:user', function *(next) {
yield 渲染模板
})
这种情况就会出现css文件路径错误。
出现的错误是:
GET `http://localhost:4000/users/css/index.css`
css正确的访问路径是:
http://localhost:4000/css/index.css
为什么要去请求'http://localhost:4000/users/css/index.css'呢?
是不是koa-static与koa-router没有办法好好的合作呢?
.......................补充...........................
koa-static的写法:
app.use(serve(__dirname+'/static/'));
页面中引用css的路径:
css/index.css
文件目录如下图:
文件夹static里有一个css文件夹,里面是css文件。
.............补充,解决了................
No.1
//koa-static中间件设置
app.use(serve(__dirname+'/static'));
//css引入路径
css:'/css/index.css
No.2
//koa-static中间件设置
app.use(serve(__dirname+'/static/'));
//css引入路径
css:'css/index.css
对于"http://localhost:4000/index"这种路径,上面两种方式没有问题。
但是"http://localhost:4000/index/red"这种路径,使用No.1才不会出问题。
No.1的写法是官方例子。No.2是我试着玩的,果然出错了。多谢大家捧场!
hi,能看看你 css 文件路径那里是怎么写的么,以及 use static 的地方