gpt4 book ai didi

php - 有没有办法为所有包括 css 文件添加版本内部编号

转载 作者:可可西里 更新时间:2023-11-01 01:04:37 26 4
gpt4 key购买 nike

我有很多地方包含像这样的 CSS 文件

$cs->registerScriptFile($cs->getCoreScriptUrl() . '/js/jquery/jquery.cookie.js');

我有一个恒定的版本构建,它在每次提交后递增。有没有办法添加

?v=VERSION-BUILD

所有脚本注册的参数,不要硬编码,或者重写yii lib?

最佳答案

就我个人而言,出于我自己的目的,我扩展了 CClientScript 类以使其向每个脚本和 css 添加唯一参数。它可以很容易地进行改进以满足您的需求。

我已经准备了这个组件的一个未经测试的简单版本。这个想法是覆盖 CClientScript 的 render() 方法,该方法在回显任何脚本文件之前被调用:

class ClientScript extends CCLientScript
{

public $version=1;

public function render(&$output)
{
if(!$this->hasScripts)
return;
if ($this->version!==false)
{
foreach ($this->scriptFiles as $position=>&$scripts)
{
foreach ($scripts as &$script)
{
$script.="?".$this->version;
}
}

foreach ($this->cssFiles as $position=>&$styles)
{
foreach ($styles as &$style)
{
$style.="?".$this->version;
}
}
}
parent::render($output);
}
}

把这个类放在“components”文件夹中。现在您可以通过配置应用程序的参数来使用它而不是 CClientScript,通常在 config/main.php 中:

'clientScript' => array(
'class' => 'ClientScript',
'version'=>2,
//the rest parameters are same as usual. you can set up packages here and so on.
)

可以改进代码以跳过 jquery 和其他第三方库等文件的版本控制 - 这取决于您。

关于php - 有没有办法为所有包括 css 文件添加版本内部编号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14129623/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com