我想要一个名为’main’的路由,它将提供静态文件:
app.use('/main',express.static(__dirname+'/public'));
但是当我做:
http://my.site.dev/main
CSS和JS文件不会下载,因为它试图让它们
http://my.site.dev/css/styles.css
http://my.site.dev/main/css/styles.css
但是,如果我使用尾部斜杠访问我的网站:
http://my.site.dev/main/
所有文件都可以正常使用
任何想法为什么没有一个尾随的斜杠混乱资源像CSS和JS进来?
解决方法
这是一个http问题,而不仅仅是一个与Express相关的挑战.问题在以下讨论:
> Relative URLs and trailing slashes
> http://www.bizcoder.com/the-mystery-of-the-trailing-slash-and-the-relative-url
如果你的URL是/ main,你的相对URL是css / style.css,它将解析为/css/style.css;但是如果您的URL是/ main /,则相关URL解析为/main/css/style.css.
app.all(/^\/main$/,function(req,res) { res.redirect('/main/'); }); app.use('/main/',express.static(__dirname+'/public'));
要么:
app.enable('strict routing'); app.all('/main',express.static(__dirname+'/public'));
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。