Изображения и ресурсы не работают на моем производственном сервере на рельсах 3.1.0 - PullRequest
11 голосов
/ 08 сентября 2011

Я переключил свой сервер в рабочий режим и не могу загрузить ни одно из своих изображений. В режиме разработки все работает нормально, но когда я переключился на производство, все перестало работать, я включил server_static_assets, но все еще ничего не работает. Любая помощь в этом

Ответы [ 3 ]

25 голосов
/ 08 сентября 2011

Вот несколько проблем, которые могут у вас возникнуть:

1 - Ваша производственная конфигурация может быть неправильной. Это особенно вероятно, если вы начали с раннего релиза 3.1, и обновлялись по пути. Предлагаемые параметры для production.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 - Возможно, вы забыли перезапустить веб-сервер, чтобы получить изменения в production.rb.

1 голос
/ 26 мая 2015

Если вы обновляетесь до 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 для справки

1 голос
/ 10 сентября 2011

Не забудьте запустить 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
...