关于koa2多层路由中,模板文件无法获取静态文件的问题.

新手上路,请多包涵

运行环境
os ~ ubuntu koa ~ 2.3.0 koa-router ~ 7.2.1 koa-views 6.0.2,ejs ~ 2.5.7
项目主要结构
项目结构

部分路由设置

router.get('/users/login',async (ctx,next)=>{

`await ctx.render('login')`

})
app.use(views(__dirname + '/views',{

`map:{html:'ejs'}`

}));
app.use(koa_static(__dirname + '/public'));

最近研究node ,遇到问题,当使用'/users/login'路径时,会遇到ejs模板中的静态文件路径发生错误的情况,
例如
http://localhost:3000/users/bower_components/responsive-tables/responsive-tables.js
但是使用'/login'路径时静态文件都是可以加载出来的

正确的情况

图片描述

错误的情况

图片描述

http://localhost:3000/bower_components/responsive-tables/responsive-tables.js

这个才是正确的路径,请问,在使用多层嵌套路由时,如何在模板页面正确加载出静态文件

阅读 4k
4 个回答

你使用static中间件,所有html里面用到的静态资源都会去你设置的静态资源目录里查找,
没搞懂你这里说的多层嵌套路由是什么,
反正把静态资源放到public里去,然后html里通过相对于public的路径使用,应该可以解决你的问题

新手上路,请多包涵

谢谢了,确实是相对路径问题,感谢

你好我遇到了同样的问题不知道你最后是怎么解决的

新手上路,请多包涵

app.use(require('koa-static')('./')) //设置静态路径为根目录,引入静态资源使用相对路径就行了

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题