资源版本管理的优化 - 使用别名输出解决 ¶
作者:KK
发表日期:2016.11.06
由于问题所在,所以我们并不能直接在模板中这样写资源引用:<link rel="stylesheet" href="/a.css"/>
这里link标签写死了a.css这个地址,当a.css改变时,如果要我们手动找到模板将/a.css
改成/a.css?v=1
那如果有N个模板都有这样的引用,改N个模板肯定不现实,别忘了还有JS什么的
输出地址不能写死,所以必须是个变量 ¶
写死了,就是不变的东西,要让它自动变,就不能写死
解决办法就是用别名输出,比如这样:
<link rel="stylesheet" href="<?php echo Yii::getAlias('@a.css'); ?>"/>
然后在配置文件里大概这样的:
return [
//其它配置
'aliases' => [
'@a.css' => '/a.css?v=1'
],
];
然后前端每次修改了a.css后,将v=1这个版本号+1
就好了,只是有时候会忘记加,所以上线后发现缓存没更新,又补加,再重新上线
其实可以实现自动加的,晚点说,但这里我要先说另一个问题,那就是AssetsBundle输出不支持别名的问题,请见下一节