我正在使用Express和Pug模板引擎。我有两条路线:
/个人资料,显示已登录的用户个人资料信息。只能由登录用户访问
/ profile /:id ,显示其他用户的信息。每个人都可以访问。
这是我的代码:
app.get("/profile/:id", function(req,res) {
// Get info from DB for specifed username in req.params.id
res.render("profile.pug", locals);
});
app.get("/profile", isLoggedIn, function(req,res) { // isLoggedIn is middleware which checks if user is logged in
res.render("profile.pug", locals);
});
我使用express.static提供我的JS / CSS /图像:
app.use(express.static(__dirname+"/public"));
当我浏览 /个人资料时,一切正常,但当我尝试 / profile /:id,时,它会渲染没有样式的模板。 Morgan loggger写道, / profile /:id 试图获取的资源不是来自域根,而是来自/ profile!
GET /profile/css/bootstrap.css 404 7.352 ms
应该是:
GET /css/bootstrap.css 200 7.352 ms
如何解决这个问题?
答案 0 :(得分:2)
最好为这些静态文件定义其他路由。
app.use("/static", express.static(path.resolve('./public/assets')));
然后将所有css文件放在assets文件夹下。之后你可以使用' /static/css/bootstrap.css'在模板文件中。
我在您的代码中假设的问题是它将profile /:id作为当前路径。