Express提供的404页面的相对path

我正在使用Express服务404页面:

server.use(function(req, res, next) { res.status(404).sendFile('404.html', { root: __dirname + BASE }) }) 

404.html位于网站的根目录中,如果我尝试在根目录( http://mywebsite.com/asd )上打开一个不存在的页面,所有内容都是完美无缺的。

问题是当我尝试打开其他文件夹( http://mywebsite.com/asd/asd )内的页面。 我的cssjs的path不受尊重: <link href="dist/bundle.min.css" rel="stylesheet">

如何解决这个path相关的问题? 在生产服务器上使用sendFile服务页面是否安全?

我相信你需要在你的href链接前面有一个forwardslash:

 <link href="/dist/bundle.min.css" rel="stylesheet"> 

as /被解释为主机名的根目录:

  • dist/bundle.min.css是相对于path。
  • /dist/bundle.min.css是相对于根。

编辑:对。 如果您指定一个基地,那么根被设置为该基地。 🙂