...Я думаю, что это то, что происходит в любом случае.
Я развертываю приложение Rails в EC2 с помощью Capistrano. Развертывание всегда проходит успешно, но даже если я только что отправил изменения JS/CSS в Git, активы не скомпилируются с первого раза. Когда я сохранял 5 релизов, мне приходилось повторять развертывание, пока все старые релизы в конечном итоге не были удалены. Я уменьшил его до 3, а затем до 1. Теперь я вижу новую версию JS и CSS после 2 последовательных развертываний.
В рабочей среде также есть несколько файлов application.js
и application.css
в папке shared/public/assets
, включая последнюю скомпилированную версию. Старые версии, кажется, не очищаются, если я не запускаю rake assets:clobber
. rake assets:clean
не удаляет их. Я предполагаю, что можно иметь более одной версии актива, если манифест указывает на правильный файл.
Я бы очень хотел, чтобы активы прекомпилировались при появлении новых изменений. Любая помощь будет оценена по достоинству.
Gemfile
gem 'rails', '4.2.3'
gem 'mysql2'
gem 'haml-rails', '~> 0.9'
gem 'sass-rails', '~> 5.0'
gem 'autoprefixer-rails'
gem 'bootstrap-sass', '~> 3.3.5'
gem 'font-awesome-rails'
gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'
gem 'therubyracer', platforms: :ruby
gem 'jquery-rails'
gem 'underscore-rails'
gem 'ejs'
gem 'turbolinks'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
group :development do
gem 'capistrano', '~> 3.4.0'
gem 'capistrano-rails', '~> 1.1'
gem 'capistrano-rbenv', '~> 2.0'
gem 'capistrano-passenger'
end
group :development, :test do
gem 'byebug'
gem 'web-console', '~> 2.0'
gem 'spring'
end
Cap-файл
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/rbenv'
require 'capistrano/rails'
require 'capistrano/passenger'
deploy.rb
set :keep_releases, 1
namespace :deploy do
after :restart, :cleanup, :clear_cache do
on roles(:web), in: :groups, limit: 3, wait: 10 do
...
end
end
end
Вывод Capistrano
INFO [b2b76675] Running RBENV_ROOT=~/.rbenv RBENV_VERSION=2.2.2 ~/.rbenv/bin/rbenv exec bundle exec rake assets:precompile as [email protected]
DEBUG [b2b76675] Command: cd /var/www/my-app/releases/20150918071822 && ( RBENV_ROOT=~/.rbenv RBENV_VERSION=2.2.2 RAILS_ENV=production RBENV_ROOT=~/.rbenv RBENV_VERSION=2.2.2 ~/.rbenv/bin/rbenv exec bundle exec rake assets:precompile )
INFO [b2b76675] Finished in 2.014 seconds with exit status 0 (successful).
rake assets:clobber
в продакшене, а затем повторное развертывание. - person collimarco   schedule 18.12.2016