Я знаю, что в yii2 можно добавлять timestamp к подключаемым js/css, если в AssetManager указать 'appendTimestamp' => true.
Но это работает только для тех js/css, которые публикуются через sourcePath в AssetBundle.
Как автоматически добавить timestamp к js, опубликованному через registerJsFile()?
У меня получилось сделать это следующим образом.
Находясь в шаблоне, вместо $this->registerJsFile($file) нужно написать следующее:
$file = '/js/page.js';
$asset = new \yii\web\AssetBundle([
'js' => [ltrim($file, '/')],
'basePath' => '@webroot',
'baseUrl' => '/'
]);
$this->getAssetManager()->bundles[$file] = $asset;
$this->registerAssetBundle($file);
То есть, вместо registerJsFile() мы создаем новый AssetBundle прямо в шаблоне и регистрируем его.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей