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-09-08 22:47:54 +08:00 via Android
|
2
bdbai 2016-09-08 22:53:27 +08:00 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; }
|