我是新来表达的。基本上我的问题很简单。 我想从一个公共目录中提供像/ css javascript这样的文件..
layout.hbs
<html>
<head>
<link href="css/style.css" rel="stylesheet" />
<script src="js/app.js"></script>
</head>
<body>
{{{body}}}
</body>
</html>
router.js - &gt;我有三条路线指向一个index.hbs
router.get("/", function(req,res){
res.render("index.hbs");
})
router.get("/articles", function(req,res){
res.render("index.hbs");
})
router.get("/articles/show/:id", function(req,res){
res.render("index.hbs");
})
现在问题出在我运行这个地址时:
curl "http://localhost:3000/"
http://localhost:3000/js/app
http://localhost:3000/css/style.css
----------------------------------------------
curl "http://localhost:3000/articles"
http://localhost:3000/articles/js/app
http://localhost:3000/articles/css/style.css
----------------------------------------------
curl "http://localhost:3000/show/1"
http://localhost:3000/show/1/js/app
http://localhost:3000/show/1/css/style.css
注意/ css和/ js路径根据UrlRequest不断变化。如何防止这种情况发生?
我正在使用快递和把手,并且已经设置了我的静态文件
app.use(express.static(path.join(__dirname, 'public');
答案 0 :(得分:12)
您应该将JS和CSS的网址指定为模板中的绝对网址:而不是css/style.css
,请使用/css/style.css
。
第一个意味着“使用此路径相对于此页面到浏览器(和curl),第二个”使用此路径相对于主机 - 这就是你想。