2013-07-30 12 views
10

Sto iniziando in binari e ho un'applicazione che funziona in dev (webrick).File CSS precompilato non trovato con rotaie 4 pipeline di asset

Il problema è: il file CSS precompilato non è stato trovato in produzione.

Ora lo ospita su heroku e lo distribuisco. Ho un messaggio che dice che le risorse sono precompilate (quindi non è un errore di compilazione) e tutto è predefinito per le impostazioni.

Ho la cartella/public/assets e tutto è lì dentro. Posso anche cat l'applicazione - *. Css file e ottengo il contenuto completo che dovrei avere.

Ora quando provo ad accedere al file CSS mi viene restituito un errore 404 (anche se si tratta di un link css generato automaticamente utilizzando <%= stylesheet_link_tag "application", :media => "all" %>). Quindi sicuramente non è un problema che ho fatto hardcode al collegamento CSS.

Non sono esattamente sicuro di quale sarebbe il prossimo controllo da eseguire.

Se siete curiosi sull'output, è attualmente accessibile al pubblico here.

risposta

14

Provare a modificare l'opzione di configurazione config.serve_static_assets = false a config.serve_static_assets = true nel proprio config/environments/production.rb se non lo si è già fatto.

+0

Bene, quello sembrava fare il trucco. Ora ho solo bisogno di capire le immagini. – Erick

+0

@Erick, anche le immagini dovrebbero essere curate. Vedete le immagini nella directory 'public/assets /'? A proposito, come stai facendo riferimento a queste immagini, sta usando l'helper 'image_path'? – vee

+0

Devo ammettere che li riferimento in modo hardcoded via /assets/something.jpg. Proverò ad usare l'helper image_path e vedrò allora. – Erick

1

L'unica cosa che ha risolto il tutto per me in Rails 4 era

config.assets.compile = true 

in config/environments/production.rb

Ciò ripiegare al patrimonio gasdotto, se un bene precompilato è mancato, secondo la documentazione.

+0

I documenti consigliano vivamente di non impostarlo su true in produzione solo per far funzionare l'app>< – bkunzi01

+0

@ bkunzi01 in teoria, la documentazione è giusta. In pratica, però, questo verrà compilato una sola volta così posso correre questo rischio =) – Abdo

+0

Cool come lo costringi a compilare solo una volta dopo l'implementazione? Le mie prestazioni delle app vengono schiacciate quando permetto questo :( – bkunzi01

Problemi correlati