只有基本路由使用css呈现。所以/
,/home
,/about
和/portfolio
都没有问题。但是/portfolio/project1
或about/biography
在没有css的情况下呈现。
这是我的密码
const express = require('express');
const xhbs = require('express-handlebars');
const app = express();
app.use(express.static('public'));
app.use(express.urlencoded({
extended:true
}));
const port = process.env.PORT || 3000;
app.engine('handlebars', xhbs({
defaultLayout:'main'
}));
app.set('view engine', 'handlebars')
app.get('/portfolio', (req, res)=>{//css works fine on this route
res.render('portfolio');
});
app.get('/portfolio/project1', (req, res)=>{//css has no effect here
res.render('project1');
});
我的文件也是这样组织的
public
css
styles.css
views
layouts
main.handlebars
server
server.js
发布于 2020-01-14 00:12:38
您应该使用相对于根的css链接,比如‘/css/styes.css’--这可能有效。
解释:如果没有“/”到源地址,请求将转到当前目录。例如:如果向css/style.css
发出请求,并且您在路径‘project/project 1’上,那么向style.css
的请求将是project/project1/css/style.css
,这将导致错误404
。
在开头使用'/‘时,请求将相对于公共根。因此,从任何路径中,请求都会到达公共的根。
希望能帮上忙。
发布于 2020-01-12 23:17:03
应该为静态中间件使用绝对路径。
app.use(express.static(path.join(__dirname, 'public')));
发布于 2022-02-04 06:48:21
您可以在车把文件的头部分使用基标记。
<base href="http://localhost:5000">
https://stackoverflow.com/questions/59708405
复制相似问题