Изображения и активы, не работающие на моем сервере производства на рельсах 3.1.0
Я переключил свой сервер на производство, и я не могу загрузить ни одно из моих изображений. Все работает отлично в режиме разработки, но когда я переключился на производство, все перестало работать, я включил server_static_assets и все еще ничего не работает. Любая помощь для этого
Ответы
Ответ 1
Вот несколько проблем, которые могут возникнуть у вас:
1 - Конфигурация вашего производства может быть неправильной. Это особенно вероятно, если вы начали с раннего релиза релиза 3.1 и обновлялись на этом пути. Предлагаемые варианты для production.rb немного изменились между версиями rc4 и 3.1.0.
Убедитесь, что ваши параметры production.rb включают в себя:
# Disable Rails static asset server (Apache or nginx will already do this)
config.serve_static_assets = false
# Don't fallback to assets pipeline if a precompiled asset is missed
config.assets.compile = false
# Generate digests for assets URLs
config.assets.digest = true
2 - Возможно, вы забыли перекомпилировать свои активы
RAILS_ENV=production rake assets:precompile
3 - Возможно, вы забыли перезапустить веб-сервер, чтобы получить изменения в production.rb.
Ответ 2
Не забудьте запустить rake assets:precompile
в рабочей среде.
Если вам нужно развернуть с Capistrano, вы можете использовать этот рецепт:
before "deploy:symlink", "assets:precompile"
namespace :assets do
desc "Compile assets"
task :precompile, :roles => :app do
run "cd #{release_path} && rake RAILS_ENV=#{rails_env} assets:precompile"
end
end
Ответ 3
Если вы обновляетесь до Rails 4 или в настоящее время используете его для производства, и загружаете изображения из css, тогда:
вместо
background-image: url('some_image.jpg');
делать
background-image: image-url('some_image.jpg');
См. http://guides.rubyonrails.org/asset_pipeline.html#css-and-sass для справки