2010-10-15 16 views
12

Ho appena passato dal mio database di sviluppo al database di produzione, e ho capito che sto ottenendo un errore costante nomatter quale vista cerco di aprire. I fogli di stile non si caricano correttamente, nonostante siano nella posizione corretta.Rails Production server: fogli di stile non visualizzati!

Ecco alcune informazioni sull'errore:

View

<head> 
<%= stylesheet_link_tag "global", "home", "http://static.flowplayer.org/tools/css/scrollable-navig.css" %> 
</head> 

Console

Started GET "/stylesheets/global.css?1287048448" for 127.0.0.1 at 2010-10-15 00:18:43 -0400 
Processing by WelcomeController#long_switchboard as CSS 
Parameters: {"1287048448"=>nil, "path"=>"stylesheets", "link"=>"global"} 
Completed in 2ms 

NoMethodError (undefined method `id' for nil:NilClass): 
    app/controllers/welcome_controller.rb:76:in `long_switchboard' 
Rendered C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.0/lib/action_dispatch/middleware/templates/rescues/_trace.erb (2.0ms) 
Rendered C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack-3.0.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.erb (7.0ms) 
Rendered C:/Sanj/Ruby192/lib/ruby/gems/1.9.1/gems/actionpack3.0.0/lib/action_dispatch/middleware/templates/rescues/diagnostics.erb within rescues/layout (108.0ms) 

Sorgente pagina

<link href="/stylesheets/global.css?1287048448" media="screen" rel="stylesheet" type="text/css" /> 
<link href="/stylesheets/home.css?1287086704" media="screen" rel="stylesheet" type="text/css" /> 
<link href="http://static.flowplayer.org/tools/css/scrollable-navig.css" media="screen" rel="stylesheet" type="text/css" />  

Quando provo ad aprire il 'globale' e foglio di stile "casa" s dal sorgente della pagina, non vengono aperti. Ho provato ad aggiungere "public /" all'URL, ma dice che nessuna route corrisponde.

Località

Tutti i non-http fogli di stile sono in radice/public/stylesheets/

Itinerari

Gli ultimi due rotte sono le 'catch alls', solo per una caratteristica particolare il sito. Questi sembrano catturare i miei fogli di stile (e probabilmente anche altri tag).

match ':path/:link' => 'welcome#long_switchboard' 
match ':path' => 'welcome#short_switchboard' 
+0

La pagina dei percorsi li porta in un'azione di controllo catchall in basso della mia pagina di percorsi, che il mio sito utilizza come funzionalità per la comodità dell'utente (gli utenti possono creare URL diversi che altri possono accedere). Non ci sono 404 o 403 - invece ho solo una brutta pagina non formattata! – sscirrus

+1

Quindi il problema è in 'routes.rb' ... Assicurarsi che'/stylesheets', '/ images','/javascripts' ecc. Non siano catturati dalla rotta 'catch-all'. Pubblica il tuo 'routes.rb' se vuoi suggerimenti su come risolvere questo problema. – Mischa

+0

Ho aggiunto il file di rotte, Tokyo. Grazie – sscirrus

risposta

18

Questo thread ha qualche suggerimento ...

A seconda del vostro server web potrebbe essere necessario modificare l'impostazione seguente in config/environments/prodcution.rb da:

config.serve_static_assets = false 

A:

config.serve_static_assets = true 
+1

I commenti sopra questa riga indicano > "Disabilita il server di asset statici di Rails. In produzione, Apache o nginx lo fanno già" Quindi dovrei impostarlo su false se uso nginx in produzione? – StarCub

Problemi correlati