2016-07-14 6 views
7

На данный момент у нас есть новая серверная среда с несколькими серверами, поэтому функция перебора кеша laravel elixer не работает, если мы загружаем репозиторий и запускаем gulp, так как каждый сервер имеет другая версия .js и .css-файла.Laravel elixer versioning (cache buster) несколько серверов

Проблема заключается в балансировке нагрузки, которая может отправить пользователя на любой сервер по запросу. Некоторые браузеры, похоже, не защищены от проблемы, но, например, я не могу загрузить css или js правильно, используя JMeter для тестирования нагрузки.

Есть ли способ синхронизировать сборку без добавления скомпилированных файлов в репозиторий или для FTP-FTP?

Мы пытаемся автоматизировать развертывание, запустив скрипт, который сбрасывает последнее репо каждый раз, когда обновляется ветка productiosn.

+0

Не работает? Или вы имеете в виду, что вы должны продолжать использовать избыточные версии? –

+0

Он работает красиво, но каждый сервер имеет различное имя файла для кэширования – brianlmerritt

+0

Прошло некоторое время с тех пор, как я использовал laravel, поэтому, пожалуйста, напомните мне, почему это имеет значение? Ваш источник SASS должен оставаться неизменным на каждой машине разработки, и вы не совершаете скомпилированный css, поэтому какое это имеет значение, если оно отличается? Или вы говорите о какой-то проблеме балансировки нагрузки с кластерной производственной средой, поэтому конечным пользователям может потребоваться избыточные копии этих ресурсов в зависимости от того, к какому узлу загружается балансировщик нагрузки? –

ответ

4

Я думаю, что единственным решением этой проблемы является фиксация файлов скомпилированных активов.

Сначала я нашел это решение странным, потому что мы, например, не имеем версию vendor.

Но в конце я обнаружил, что большинство проектов front-end всегда отправляют папку dist с скомпилированными файлами.

Таким образом, вам нужно будет зафиксировать свою папку build вашего общего пути каждый раз, когда вы вносите изменения в файл актива.

Конечно, не забудьте сделать gulp --production перед нажатием, чтобы свести к минимуму ваши файлы.

+0

Спасибо - я посмотрю в понедельник и вернусь :) – brianlmerritt

+0

Я думаю, что вы близки, но предложение Dencker также должно быть включено в ответ :) – brianlmerritt