Yii2: добавить timestamp к js, подключенному через registerJsFile()

727
21 декабря 2016, 03:48

Я знаю, что в yii2 можно добавлять timestamp к подключаемым js/css, если в AssetManager указать 'appendTimestamp' => true.

Но это работает только для тех js/css, которые публикуются через sourcePath в AssetBundle.

Как автоматически добавить timestamp к js, опубликованному через registerJsFile()?

Answer 1

У меня получилось сделать это следующим образом.

Находясь в шаблоне, вместо $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 прямо в шаблоне и регистрируем его.

READ ALSO
Активная кнопка html5

Активная кнопка html5

Как добавить стиль к неактивной/активной кнопки?

352
Выполнение пробного сайта [требует правки]

Выполнение пробного сайта [требует правки]

Здравствуйте, прошу помочьВ моём окружении нету знающих сайтостроение, кроме форума

443
Как перемещать текст по странице сайта в css? [требует правки]

Как перемещать текст по странице сайта в css? [требует правки]

Есть блок, и на нем должны быть размещены различные фразы-ссылкиОдну из них мне нужно переместить вправо на некоторое количество пикселей

1080
Помогите с анимацией scale

Помогите с анимацией scale

Помогите сделать анимацию чтобы при клике по кнопке див с замедлением появлялся с трансформацией [scale] с еулевого размера увеличивался до своего...

435