NodeJS,使用友好网址时找不到css,js

时间:2015-01-07 03:18:47

标签: node.js

这是我关于stackoverflow的第一个问题,我的英语非常糟糕,抱歉。

在nodejs应用程序中,当我使用url如“/ post_detail?id = 123”

app.get('/post_detail', function(req, res) {
    res.render("post_detail", {id: req.param("id")})
});

没关系,我将在post_detail页面加载所有js和css:

GET /css/main.css 304 7.194 ms - -
GET /css/themes.css 304 7.313 ms - -
GET /js/vendor/bootstrap.min.js 304 8.139 ms - -
GET /js/plugins.js 304 8.810 ms - -
GET /js/app.js 304 16.648 ms - -

但是,当我使用“/ post_detai / 123”和路由器时:

app.get('/post_detail/:id', function(req, res) {
    res.render("post_detail", {id: req.param("id")})
});

在控制台中出现以下错误:

GET /post_detail/css/themes.css 404 38.535 ms - 965
GET /post_detail/css/main.css 404 38.817 ms - 965
GET /post_detail/js/vendor/bootstrap.min.js 404 28.060 ms - 965
GET /post_detail/js/plugins.js 404 19.449 ms - 965
GET /post_detail/js/app.js 404 16.454 ms - 965

那么,如何解决这个问题呢?请帮我。 :(

感谢您的帮助。

P / S:当我使用url“/ post_detail / 123”时,在控制台中有任何区别: 网址“/ post_detail?id = 123”

GET /css/themes.css 304 7.313 ms - -

Url“/ post_detail / 123”

GET /post_detail/css/themes.css 404 38.535 ms - 965

1 个答案:

答案 0 :(得分:1)

在包含jscss文件时,您似乎最有可能使用相对路径而不是绝对路径。

在您的视图文件中(可能是layout.html,我只是猜测您项目的结构)尝试使用前缀为正斜杠的网址:

<!-- This -->
<link href="/css/main.css">
<script src="/js/app.js"></script> 

<!-- Rather than this -->
<link href="css/main.css">
<script src="js/app.js"></script>

当您/post_detail?id=123时,相对路径正常工作,因为它们与/相关,但当您访问/post_detail/123时,它们现在相对于/post_detail/并且会请求带有前缀/post_detail/的资源。

因此,请尝试在视图中使用绝对路径,我希望它能正常工作。