I switched my server to production and i cannot get any of my images to load. It all works fine on development mode but when i switched to production it all stopped working i have enabled server_static_assets and still yet nothing works. Any help towards doing this

有帮助吗?

解决方案

Here are a few problems that you might be having:

1 - Your production configuration may not be correct. This is particularly likely if you started out with an early 3.1 release candidate, and have been updating along the way. The suggested options for production.rb changed quite a bit between rc4 and the 3.1.0 release.

Make sure that your production.rb settings include:

# 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 - You may have forgotten to precompile your assets

RAILS_ENV=production rake assets:precompile

3 - You may have forgotten to restart your web server to pick up the changes in production.rb.

其他提示

Remember to run rake assets:precompile in your production environment.

If you need are deploying with Capistrano, you can use this recipe:

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

If you are upgrading to Rails 4 or are currently using it on production, and are loading images from css, then:

instead of

background-image: url('some_image.jpg');

do

background-image: image-url('some_image.jpg');

See http://guides.rubyonrails.org/asset_pipeline.html#css-and-sass for reference

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top