您好我正在处理节点应用程序。我使用express设置静态文件。在正常路由下工作正常。所有css和js文件都正常工作。当我设置动态路由如
router.get('/product/:id',function(req,res,next){
Product
.findById({_id:req.params.id},function(err,product){
if (err) return next(err);
res.render('main/product',{
product:product
});
});
});
虽然产品页面工作正常但它显示结果准确但它没有捕获我在公共文件夹上定义的任何css或js文件。当我尝试打开css文件时,其URL为http://localhost:3000/product/css/jumbotron.css
相反,它的网址应该是
http://localhost:3000/css/jumbotron.css
我在哪里做错了?
答案 0 :(得分:1)
您网页中CSS重新分配的网址显然是相对网址。将前导POST
添加到这些网址的前面,这样他们就不会使用网页中的路径。
更改此
/
到此:
"css/jumbotron.ss"
在HTML页面中。
如果没有前导"/css/jumbotron.ss"
,您的网址是“页面相对的”,这意味着浏览器会在从服务器请求之前将页面URL中的路径添加到CSS网址。你不希望这样。添加/
以开始CSS引用将告诉浏览器忽略页面的路径。