当Express发送带参数的静态html文件时,路径不正确

时间:2016-03-20 15:02:21

标签: javascript express

如果这个问题在其他地方回答,我很抱歉。

我想在url包含参数时发送静态html文件。  例如,http://localhost:3000/detail.html/1,但路径类型搞砸了。  这是我的问题,   我使用了app.use(express.static(path.join(__ dirname,'public')));对于没有参数的所有静态文件请求,
 对于此http://localhost:3000/detail.html/:id请求,我使用了

app.get('/detail.html/:id', function(req, res){
var options = {
root: __dirname + '/public/'


};

 res.sendFile(  'detail.html',options);
});

我可以在浏览器中获取detail.html页面,但是我在detail.html中的所有css链接和图像src都是相对的,请求变成这样:/detail.html/css/custom.css而不是  只是/css/custom.css。

我的文件结构是所有html文件都在公共文件夹中,而css文件在public / css文件夹中。

我哪里错了?  怎么解决这个问题呢?  谢谢!

1 个答案:

答案 0 :(得分:0)

您可以将detail.html重命名为index.html,并在您的快递代码中添加路线,

app.get('/', function (req, res) {
  res.sendfile('__dirname + '/public/' + index.html);
})

然后,您将不会在您的网址中使用html静态文件,而且事情会有效