Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Running thin server in production mode isn't loading my assets

When I load thin like so:

thin start -e production

and try to access one of my pages, I get this in the log output:

cache: [GET /] miss
cache: [GET /assets/main-bd1ef4b153740fb69fd615304b87ad0d.css] miss
cache: [GET /assets/jqModal-8fa734bf4f58524b2799abd73ab7d34f.css] miss
cache: [GET /assets/jquery-544665ba1d5b4f793290421aafed85c9.js] miss
cache: [GET /assets/application-00b97aa2429046c0c43802f07b756b46.js] miss

These files exist in my assets directory under public.

I've run this command also:

RALS_ENV=production rake assets:precompile

I've tried just accessing the file /public/assets/application.js in the browser like this:

http://localhost:3000/application.js

Which gives me a 404 error (even though the file exists in /public/assets but the file can be read when I make a request to the file when the server is in development mode.

Anyone have any ideas?

like image 796
aarona Avatar asked Feb 01 '12 19:02

aarona


1 Answers

Rails serving static files is turned off in production (config/environments/production.rb) by default:

# Disable Rails's static asset server (Apache or nginx will already do this)
config.serve_static_assets = false

The Thin server is not configured to serve the static assets, and so requests to your assets are failing.

like image 101
Ryan Bigg Avatar answered Nov 19 '22 15:11

Ryan Bigg