Как в Yii2 менять версию assets после релиза?

После релиза и очистки папки assets Yii2 создает папку с таким же именем, как и раньше, не смотря на то, что ресурсники поменялись. Соответственно у пользователей кеш. Каким образом избежать этого?
  • Вопрос задан
  • 3656 просмотров
Пригласить эксперта
Ответы на вопрос 4
Antago
@Antago Автор вопроса
protected function publishDirectory($src, $options)
    {
        $dir = $this->hash($src . filemtime($src));
        ....
    }


Судя по вот этому коду из AssetManager имя целевой папки зависит от времени последнего изменения ресурсной. Но, как оказалось, это время не меняется, если изменять только содержимое файлов. Т.е. время последнего изменения папки никак не зависит от времени последнего изменения файлов внутри ее.
Костыльный вариант - создавать/удалять в папке ресурсников какой-то временный файл/папку
Ответ написан
Комментировать
@Zohei
Тоже интересно как это делается при помощи менеджера ресурсов. Сам всегда использовал следующий трюк: указываю номер версии в пути к файлу, например, css/main.css?v=1.3
или js/main.js?v=2.29
Ответ написан
Комментировать
название директории в папку assets - хэш, зависящий от создания папки. Соответственно, очистив папку assets, вы пересоздадите все ассетсы.
Ответ написан
phpnt
@phpnt
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы