使用Express提供的404页面的相对路径

时间:2016-05-03 17:56:42

标签: node.js express

我正在使用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的路径未得到遵守: <link href="dist/bundle.min.css" rel="stylesheet">

如何解决此路径相关问题?在生产服务器上使用sendFile提供页面是否安全?

1 个答案:

答案 0 :(得分:2)

我相信您需要在href链接前加上转发:

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

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

  • dist/bundle.min.css与路径相关。
  • /dist/bundle.min.css相对于根。

编辑:对。如果指定基数,则将根设置为该基数。 :)