节点服务器不提供静态文件

时间:2017-11-21 08:32:14

标签: node.js express

我使用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 前缀。

但是当我从/auth将网址映射更改为/auth/login时,它可以正常工作。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

我在/属性中未使用href链接其他js和CSS文件。喜欢这个

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

所以我通过附加href

更改了所有/
<link href="/css/bootstrap.min.css" rel="stylesheet">

现在这是有效的。感谢@Patric