Изображения и активы не работают на моем производственном сервере на рельсах 3.1.0
-
27-10-2019 - |
Вопрос
Я переключил свой сервер на производство, и я не могу получить ни одно из своих изображений для загрузки. Все работает нормально в режиме разработки, но когда я переключился на производство, все перестало работать, я включил Server_static_assets и все же ничего не работает. Любая помощь в этом
Решение
Вот несколько проблем, с которыми вы можете возникнуть:
1 - Ваша производственная конфигурация может быть неправильной. Это особенно вероятно, если вы начали с раннего кандидата в релиз 3.1 и обновлялись на этом пути. Предлагаемые варианты для производства.rb немного изменились между RC4 и выпуском 3.1.0.
Убедитесь, что ваши настройки Production.RB включают в себя:
# Disable Rails's 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 - Возможно, вы забыли перезапустить свой веб -сервер, чтобы получить изменения в производстве.rb.
Другие советы
Не забудьте бежать rake assets:precompile
в вашей производственной среде.
Если вам нужно развертывание с Капистрано, вы можете использовать этот рецепт:
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
Если вы обновляетесь до 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 для справки