
node 环境下,利用 express+pug 开发一个页面,静态文件配置如下:
app.use('/static', express.static(__dirname + '/public')); 然后在 pug 模板中引入 css 文件:
link(href='/static/css/layout.css' type='text/css' rel='stylesheet') 这样的话,在开发环境下是正常的,但是当我部署到生产环境下,绑定在域名 www.aaa.com/bbb 的时候,静态文件仍然会访问 www.aaa.com/static/css/layout.css, 这种情况该怎么处理?
如果不用专门的静态服务器呢,只有三五个 css 文件不需要啊。
1 bdbai 2016 年 9 月 8 日 via Android |
2 bdbai 2016 年 9 月 8 日 via Android 额 把 /static 前面的斜杠去掉就行。 |
4 ff1m80 OP @bdbai 去掉斜杠的话,相对目录读取的是当前文件夹下的。 不过我找到解决方法了。 在 app.js 里: ``` app.locals.assetUrl = function() { return config[env].assetHost;} ``` 然后在 pug 文件里 ``` link(href=assetUrl('/static/css/layout.css') type='text/css' rel='stylesheet') ``` 哈哈哈,我就是看隔壁的那个 kails 学会的 |
5 ff1m80 OP , md 写错了 |
6 ff1m80 OP , assetUrl 那个函数也写错了,没有把参数加进去, 应该是 function(asset) { return config[env].assetHost + asset; } |