node.js - Express 提供的 404 页面的相对路径

标签 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 ) 内的页面时。我的 css 的路径和js不被尊重: <link href="dist/bundle.min.css" rel="stylesheet">

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

最佳答案

我相信您的 href 链接前面需要一个正斜杠:

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

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

  • dist/bundle.min.css 是相对于路径的。
  • /dist/bundle.min.css 相对于根目录。

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

关于node.js - Express 提供的 404 页面的相对路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37011136/

相关文章:

node.js - 什么 NPM CLI 命令可用于更新依赖项的依赖项?

node.js - SailsJS - Nodejs Https 请求。发送后无法设置 header

javascript - 如何在express js中构建站点地图?

node.js - 在路由路径中搜索公共(public)文件夹

javascript - 捕获sequelize模型中的错误

javascript - 当我使用 for 循环时,为什么我的代码不在 forEach 中等待?

node.js - 重定向到redirectURL Passport-azure-ad OIDCStrategy

node.js - 安装 Node.js 后,“npm”不被识别为内部或外部命令、可操作程序或批处理文件 - Windows

Heroku 上的 Node.js Socket.io 抛出 H13

javascript - 如何将多个中间件功能封装成一个?