例如,我的模板文件中包含以下代码:
<link href="http://localhost:3000/css/bootstrap.min.css" rel="stylesheet">
这会强制我在启动网站时将IP地址从http://localhost:3000
更改为Web服务器IP地址。可以想象,整个站点有很多模板文件。我编写的脚本可以搜索和替换项目模板文件中的IP实例,如果可以的话,我想避免这样做。
我想保留以下格式:
<link href="css/bootstrap.min.css" rel="stylesheet">
请注意,它与原点无关。我希望Express能够使用服务器的当前位置来提供文件。
我目前在server.js
文件中使用此代码:
app.use(express.static(path.join(__dirname ,'/v1/public/')));
如果我在模板文件中指定主机,那么效果很好。我还没有在网上发现任何我想做的事情。
答案 0 :(得分:1)
如果标题是模板文件,为什么不将完整的url作为变量传递给模板?您可以通过以下方式构建应用级别的网址:
var baseUrl = req.protocol + '://' + req.get('host');
并将baseUrl
传递给标题模板,并在运行时为路径添加前缀。
答案 1 :(得分:0)
尝试:
href="http://localhost:3000/v1/public/css/bootstrap.min.css" rel="stylesheet"
或亲戚:
href="./v1/public/css/bootstrap.min.css" rel="stylesheet"
您的静态文件夹是提供静态资源的文件夹路径。