No route matches [GET] /assets
In production mode, Rails will not be responsible for serving static assets. Therefore, you are getting this error. Thin won't do it either, since it's just a wrapper around Rails.
This is controlled by this setting in config/environments/production.rb
in your application:
config.serve_static_files = false
Or in Rails 5:
# config/environments/production.rb
config.public_file_server.enabled = true
Or set ENV['RAILS_SERVE_STATIC_FILES']
to true.
You can either set to that true
or use a real server like Apache or Nginx which will serve the static assets. I suspect Pow may also do it.
If you're on Heroku, they recommend the use of the rails_12factor
gem which enables this setting by default. Place the gem into a production
group in your Gemfile
, like this:
group :production do
gem 'rails_12factor'
end
Adding to what Ryan said above, the Rails asset pipeline guide describes how to setup Apache or nginx to serve the static assets for you.
http://guides.rubyonrails.org/asset_pipeline.html
You really should setup nginx or Apache to serve static assets, as they're much better optimized for this task than mongrel/thin/unicorn.