Подтвердить что ты не робот

Путаница в отношении рейк-активов: очистка/очистка на трубопроводе активов в рельсах

Может ли кто-нибудь объяснить мне, что действительно делает команда rake assets:clean? К сожалению, Rails Guides не упоминают об этом. Существует также команда rake assets:cleanup. В чем разница?

Кроме того, кто-нибудь скажет мне, когда мне нужно запустить rake assets:precompile в процессе производства. Запустить его на консоли сервера после того, как я развернул все свои файлы приложений на моем рабочем сервере? Или я precompile на моей локальной машине, а затем выполняю развертывание всех файлов?

Спасибо всем

4b9b3361

Ответ 1

Примечание. Этот ответ относится к рельсам 3. Для рельсов 4 и более поздних см. Здесь другие ответы.

Если вы прекомпилируете на своем локальном компьютере, вы можете передать эти сгенерированные активы в репозиторий и продолжить развертывание. Нет необходимости компилировать их на производственную машину.

Но это создает проблему: теперь, когда вы меняете исходные файлы (coffescript/scss), приложение не будет получать изменения, потому что вместо этого оно будет обслуживать предварительно скомпилированные файлы. rake assets:clean удаляет эти предварительно скомпилированные файлы.

В моих проектах активы предварительно скомпилированы как часть развертывания. Capistrano делает это очень легко.

Кроме того, я никогда не слышал о rake assets:cleanup.

Ответ 2

Запустите rake assets:clobber, чтобы фактически очистить активы. http://www.dixis.com/?p=735

Ответ 3

Ответ Sergio был полностью прав в Rails 3. rake assets:clean удалил все активы, которые предварительно были предварительно скомпилированы в каталог public/assets.

В Rails 4 вы запустите rake assets:clobber, чтобы сделать то же самое.

Если вы запустите rake assets:precompile со следующей конфигурацией (по умолчанию включен в стадии постановки и производства):

# config/environments/production.rb
config.assets.digest = true

Скомпилированные активы скомпилированы. Это означает, что вы можете скомпилировать свои новые активы, оставив старые активы на месте. Обычно вы хотите сделать это на производстве, чтобы веб-сайт по-прежнему обращался к старым файлам, а ваш запуск precompile создавал ваши новые файлы (потому что вы добавили новый css/javascript). Теперь вы хотите избавиться от старых файлов, которые больше не используются. clean он удаляет старые версии предварительно скомпилированных активов, оставляя новые активы на месте.

Ответ 4

rake assets:clean удаляет скомпилированные активы. Он запускается cap deploy:assets:clean для удаления скомпилированных активов, как правило, с удаленного сервера.

cap deploy:clean удаляет старые версии, обычно с удаленного сервера. Это не rake assets:clean

rake!= cap

Ответ 5

rake assets:clean теперь выполняется cap deploy:cleanup_assets. Добавьте require 'capistrano/rails/assets' в свой Capfile, и вы получите эту задачу. Моя версия capistrano v3.2.1.

Ответ 6

очистите эти невоспроизводимые файлы git clean -f для файлов и git clean -f -d для каталогов