DrFreez
@DrFreez

Yii, CSS & JS. Как организовать контроль версий при кэшировании?

Выставляем в nginx кэширование для скриптов и стилей
location ~ \.(js|css)$ {
     expires max;
}

Как следствие теперь, чтобы браузер подтянул измененный js/css необходимо изменить url. Дописать ?r123 к примеру (подключается через registerPackage). Что как-то не очень удобно, если в проекте много стилей и скриптов.

Взглянул было на assetManager, но потом понял, что путь в итоге всегда один и тот-же, и это не поможет. Как это лучше сделать? Есть готовые примеры?

Почитал habrahabr.ru/post/139166/, узнал надо обязательно делать touch /path/to/your/website/protected/assets. Как-то без этого можно? В статье писали, что в рельсах уже решили эту проблему. Что это за решение?
  • Вопрос задан
  • 2668 просмотров
Пригласить эксперта
Ответы на вопрос 2
Freika
@Freika
Senior Ruby on Rails developer
aaronfrancis.com/blog/2013/6/19/yii-and-the-asset-... это не выход? В Rails используется Assets Pipeline для версионирования элементов, при компиляции им присваиваются уникальные имена, что позволяет видеть свежие изменения даже при включенном кэшировании.
Ответ написан
fornit1917
@fornit1917
Дописать ?r123 к примеру (подключается через registerPackage). Что как-то не очень удобно, если в проекте много стилей и скриптов.


Удобно. Можно автоматизировать даже.


Взглянул было на assetManager, но потом понял, что путь в итоге всегда один и тот-же, и это не поможет.

Нет

Изменил css/s/main.css, теперь надо очистить assets... и так каждый раз? как-то без этого можно?

Не совсем, по дефолту yii сам отслеживает, что файл был изменен и перезаливает его в asset в другую папку. Публиковаться скрипт будет теперь с новым путем. Ну а старый да, надо удалить руками. На девелоперской машине это не критично, а на продакшене можно автоматизировать при выкате обновлений.
Ответ написан
Ваш ответ на вопрос

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

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