Прекомпиляция активов на производственном сервере происходит очень медленно. Поэтому я решил перекомпилировать их на машине разработки и загрузить активы на Amazon S3 на jammit
. Все это сделано, но у меня есть некоторые негативные проблемы:Контейнер Rails 3 и активов в режиме разработки/производства
- Я должен включать
public/assets
каталог дляgit
управления. Потому что если каталогpublic/assets
пуст на производственном сервере, то сбой - Если я предварительно скомбинирую активы на машине разработки,
application.js
включает в себя HTML как сжатый, и таким образом я дублировал код js. Изменение js не влияет, поскольку прекомпилированный кодapplication.js
прерывает этот код.
Таким образом, мой процесс разработки включает в себя следующие этапы:
- Извлеките прекомпилирована активы, если я собираюсь изменить JS или CSS
- сделать некоторые изменения
- PreCompile активы
- Загрузить активы на S3 по
jammit-s3
- Выполняйте и нажимайте мои изменения, включая активы, на сервер git
- Deploy на Капистрано
Мои вопросы:
- Можно настроить среду разработки не включают прессованные
application.js
, если у меня есть это вpublic/assets
каталоге? - Можно ли настроить рабочую среду для работы с пустым каталогом
public/assets
? Активы будут только на сервере S3.
Я установил 'config.action_controller.asset_host', если производственный режим, но я должен иметь предварительно скомпилированные активы в пути public/assets так или иначе, потому что сервер терпит неудачу без них. – ka8725
Возможно, вы захотите попробовать несколько разных настроек а также. Не могли бы вы разместить свой production.rb, потому что очень сложно сказать, что вы сделали, а что нет. Попробуйте минимизировать использование Rails таких активов, как: 'config.assets.compile = false' Поэтому он не будет пытаться их генерировать. – tombruijn
Также, как сервер терпит неудачу? Он не регистрирует удаленный объект asset_host и проверяет каталог public/assets? Разве это действительно служит им из приложения или объекта asset_host? – tombruijn