资源版本管理的优化 - 使用别名输出解决

  • 作者: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输出不支持别名的问题,请见下一节