Node.js 当url后跟/

Node.js 当url后跟/,node.js,express,Node.js,Express,我的静态文件设置如下: app.use(express.static('public')); 我可以使用以下方法正确加载“mysite.com/test”页面: app.route('/test') .get(function(req,res){ res.sendFile(__dirname + '/index.html') //Actually in my model it uses res.render('pugfile.pug') rather than

我的静态文件设置如下:

app.use(express.static('public'));
我可以使用以下方法正确加载“mysite.com/test”页面:

app.route('/test')
   .get(function(req,res){
       res.sendFile(__dirname + '/index.html') 
      //Actually in my model it uses res.render('pugfile.pug') rather than send, but I don't see why that would make a difference.
})
但是,如果我加载“mysite.com/test/”页面,它仍然会加载html,但不会加载静态文件

如果我试图导航到多个分区深度的页面,例如“mysite.com/test/test/test”,也会出现同样的问题。html可以正常加载,但不能加载静态文件。我认为express静态中间件的全部目的就是解决这个问题

这似乎是我在这里错过的一件显而易见的事情。

找到了答案:

您需要将/添加到所有要工作的静态文件的前面

<link href='styles/css/stylesheet.css' type='text/CSS' rel='stylesheet' />

更改为

<link href='/styles/css/stylesheet.css' type='text/CSS' rel='stylesheet' />


尝试在公共应用程序之前添加./use(express.static(“./public”);如果有效,我将在回答中解释
index.html
的内容是什么?我猜您使用的是计算错误的相对路径。是的,这显然是一个路径问题,但我认为express静态中间件的全部目的是解决这个问题?html文件中的css(例如)只是简单地在public不起作用之前添加./。