我将服务器切换到生产环境,但无法加载任何图像。在开发模式下一切正常,但是当我切换到生产模式时,它都停止工作了,我启用了 server_static_assets,但仍然没有任何效果。对这样做有任何帮助
问问题
13299 次
3 回答
25
以下是您可能遇到的一些问题:
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 - 您可能忘记重新启动 Web 服务器以获取 production.rb 中的更改。
于 2011-09-08T00:34:54.530 回答
1
请记住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
于 2011-09-09T22:04:15.467 回答
1
如果您正在升级到 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以供参考
于 2015-05-25T21:27:17.553 回答