Heroku does not serve background image, localhost does?
I have a problem with my rails application (Rails 4.0.0.rc2, ruby 2.0.0p195).
The behavior is weird: My localhost shows the background picture properly, Heroku doesn't.
In the heroku logs I can see the following error:
ActionController::RoutingError (No route matches [GET] "/assets/piano.jpg"):
I have created the background image by inserting the following code in my custom.css.scss:
.full {
background: image-url("piano.jpg") no-repeat center center fixed;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
And I am triggering this with the following code, which I have on my static page:
<body class="full">
....
</body>
I already have the gem running in production:
group :production do
gem 'pg'
gem 'rails_12factor'
end
In production.rb I have set the following setting to true:
config.serve_static_assets = true
However, the image is not being shown. Can you help me out?
确保你在production.rb文件中设置了这些
config.cache_classes = true
config.serve_static_assets = true
config.assets.compile = true
config.assets.digest = true
I have found the solution for the issue myself:
RAILS_ENV=production bundle exec rake assets:precompile
After running this command in my console, the picture was shown properly.
Previously I had only tried to run:
rake assets:precompile
That alone didn't help. You have to address the production environment in your command.
I hope this serves as a reference for other users.
I needed a combination of the other answers to work for me.
I needed to use @Brock90's production config settings as well as precompile the assets as Alex mentioned.
链接地址: http://www.djcxy.com/p/78016.html