Aba*_*aba 13 routes node.js express
我想要一个名为'main'的路由,它将提供静态文件:
app.use('/main',express.static(__dirname+'/public'));
Run Code Online (Sandbox Code Playgroud)
但是当我这样做时:
http://my.site.dev/main
Run Code Online (Sandbox Code Playgroud)
CSS和JS文件不会下载,因为它试图从中获取它们
http://my.site.dev/css/styles.css
Run Code Online (Sandbox Code Playgroud)
它应该是从以下文件获取文件:
http://my.site.dev/main/css/styles.css
Run Code Online (Sandbox Code Playgroud)
但是,如果我使用尾部斜杠访问我的网站:
http://my.site.dev/main/
Run Code Online (Sandbox Code Playgroud)
所有文件都很好
任何想法为什么没有一个尾随斜线会混淆CSS和JS之类的资源?
Tre*_*xon 21
这是一个http问题,而不仅仅是与Express相关的挑战.问题讨论在:
如果您的网址是/ main,而您的相对网址是css/style.css,则会解析为/css/style.css; 但如果您的网址是/ main /,则相对网址会解析为/main/css/style.css.
我处理此问题的策略是重定向以添加尾部斜杠.在Express中像这样:
app.all(/^\/main$/, function(req, res) { res.redirect('/main/'); });
app.use('/main/',express.static(__dirname+'/public'));
Run Code Online (Sandbox Code Playgroud)
要么:
app.enable('strict routing');
app.all('/main', function(req, res) { res.redirect('/main/'); });
app.use('/main/',express.static(__dirname+'/public'));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7898 次 |
| 最近记录: |