【发布时间】:2017-11-21 08:32:14
【问题描述】:
我使用 express 框架创建了一个 nodejs 应用程序。我使用express.static 来提供我的静态文件。
app.use(express.static(path.join(__dirname, '..', 'public')));
有一个路由服务于 login.html。
// serve login page
app.get('/auth/login', loginPage);
和loginPage函数
loginPage(req: any, res: any) {
res.sendFile(path.join(__dirname, '..', '..', 'public', 'login.html'));
}
现在,如果我直接点击 http://localhost:8080/login.html 登录页面会得到所有的 css 和 js 文件,所以会得到静态文件。
但是当我点击 http://localhost:8080/auth/login 时,只提供 login.html 并且其他 css/js 文件显示 404 状态。
如果我检查浏览器网络窗口请求的请求是针对 http://localhost:8080/auth/css/bootstrap.min.css,则这是附加 auth 前缀。
但是当我将 URL 映射从 /auth/login 更改为 /auth 时,它可以正常工作。
我该如何解决这个问题?
【问题讨论】:
-
问题很可能不在 Express 后端,而在于您从 login.html 中的 HTML 代码引用 CSS 文件的方式。请包含链接到样式表的代码。
-
我使用了相对网址。
<link href="css/bootstrap.min.css" rel="stylesheet"> -
好吧,你去吧,如果你使用相对 URL,它总是相对于当前页面的路径。试试
href="/css/bootstrap.min.css"(以斜线开头)