我编写了一个vanilla服务器(使用Node.js和Express)来浏览文件和目录(基于directory中间件)。在Windows机器上,它被反斜杠搞糊涂了,并且在导航时通过提供无效/损坏的链接快速中断 - 链接变成前向和反斜杠的汤,其中dir名称在其中反复重复,等等。
所以或者例如,转到localhost:8888,点击'lib'文件夹,然后'..',给我:
/ \lib / \\lib\..\ /
这是代码。
var express = require('express');
var server = express();
server.configure(function(){
server.use(express.static('./stuff'));
server.use(express.directory('./stuff'));
});
server.listen(8888);
我需要做些什么才能让它在Windows机器上运行?
答案 0 :(得分:0)
@verybadalloc和@ user2524973在express directory.js中间件中发现了导致此问题的错误。在对原始问题的评论中,他们也提供了修复。
找到说
的行return '<li><a href="' + join(dir, file) + '" class="' + classes.join(' ') + '"' + ' title="' + file + '">'
它应该在第176行附近。将其更改为:
return '<li><a href="' + join(dir, file).replace(/\\/g, '/') + '" class="' + classes.join(' ') + '"' + ' title="' + file + '">'
...它应该在Windows上运行得更好。
似乎此修补程序已添加到主存储库中,但后来被删除了,因此此修复程序可能会产生一些无法预料的后果?无论如何,对我来说,我只是用它来列出我的音乐文件夹。
我发布了这个答案,因为我差点错过了他们在评论中解决了这个问题。感谢。