このような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」フォルダに配置します。これで、通常はconfig / main.phpでアプリのパラメーターを構成することにより、CClientScriptの代わりに使用できます。
'clientScript' => array(
'class' => 'ClientScript',
'version'=>2,
//the rest parameters are same as usual. you can set up packages here and so on.
)
jqueryやその他のサードパーティライブラリなどのファイルのバージョン管理をスキップするようにコードを改善できます。これはあなた次第です。