2011-09-04 3 views
23

Il mio modello css funziona sul mio computer locale, ma quando invio a heroku viene visualizzato un errore.blueprint css rails 3.1 help

Ho progetto memorizzati nel mio app/assets/stylesheets folder e qui ci sono i tag foglio di stile che sto usando:

<%= stylesheet_link_tag "application" %> 
<%= stylesheet_link_tag 'blueprint/screen', :media => 'screen' %> 
<%= stylesheet_link_tag 'blueprint/print', :media => 'print' %> 

nei miei ceppi Heroku, si dice application.css isnt precompilata e penso che potrebbe essere l'errore, ma non so come aggiustarlo

Ecco miei log Heroku:

2011-09-04T07:35:59+00:00 heroku[web.1]: Idling 
2011-09-04T07:36:00+00:00 heroku[web.1]: State changed from up to down 
2011-09-04T07:36:00+00:00 heroku[web.1]: State changed from down to created 
2011-09-04T07:36:00+00:00 heroku[web.1]: State changed from created to starting 
2011-09-04T07:36:01+00:00 heroku[web.1]: Stopping process with SIGTERM 
2011-09-04T07:36:01+00:00 app[web.1]: >> Stopping ... 
2011-09-04T07:36:01+00:00 heroku[web.1]: Process exited 
2011-09-04T07:36:04+00:00 heroku[web.1]: Starting process with command `thin -p 44288 -e production -R /home/heroku_rack/heroku.ru start` 
2011-09-04T07:36:07+00:00 app[web.1]: >> Thin web server (v1.2.6 codename Crazy Delicious) 
2011-09-04T07:36:07+00:00 app[web.1]: >> Maximum connections set to 1024 
2011-09-04T07:36:07+00:00 app[web.1]: >> Listening on 0.0.0.0:44288, CTRL+C to stop 
2011-09-04T07:36:08+00:00 heroku[web.1]: State changed from starting to up 
2011-09-04T08:41:45+00:00 heroku[web.1]: Idling 
2011-09-04T08:41:46+00:00 heroku[web.1]: State changed from up to down 
2011-09-04T08:41:46+00:00 heroku[web.1]: Stopping process with SIGTERM 
2011-09-04T08:41:46+00:00 app[web.1]: >> Stopping ... 
2011-09-04T08:41:47+00:00 heroku[web.1]: Process exited 
2011-09-04T16:05:59+00:00 heroku[slugc]: Slug compilation started 
2011-09-04T16:06:10+00:00 heroku[api]: Deploy 9ec665f by [email protected] 
2011-09-04T16:06:10+00:00 heroku[api]: Release v9 created by [email protected] 
2011-09-04T16:06:11+00:00 heroku[slugc]: Slug compilation finished 
2011-09-04T16:06:19+00:00 heroku[web.1]: Unidling 
2011-09-04T16:06:19+00:00 heroku[web.1]: State changed from down to created 
2011-09-04T16:06:19+00:00 heroku[web.1]: State changed from created to starting 
2011-09-04T16:06:21+00:00 heroku[web.1]: Starting process with command `thin -p 32066 -e production -R /home/heroku_rack/heroku.ru start` 
2011-09-04T16:06:25+00:00 app[web.1]: >> Thin web server (v1.2.6 codename Crazy Delicious) 
2011-09-04T16:06:25+00:00 app[web.1]: >> Maximum connections set to 1024 
2011-09-04T16:06:25+00:00 app[web.1]: >> Listening on 0.0.0.0:32066, CTRL+C to stop 
2011-09-04T16:06:26+00:00 heroku[web.1]: State changed from starting to up 
2011-09-04T16:06:27+00:00 app[web.1]: 
2011-09-04T16:06:27+00:00 app[web.1]: 
2011-09-04T16:06:27+00:00 app[web.1]: Started GET "/" for 65.7.186.42 at 2011-09-04 09:06:27 -0700 
2011-09-04T16:06:28+00:00 app[web.1]: 
2011-09-04T16:06:28+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/"): 
2011-09-04T16:06:28+00:00 app[web.1]: 
2011-09-04T16:06:28+00:00 app[web.1]: 
2011-09-04T16:06:28+00:00 app[web.1]: 
2011-09-04T16:06:28+00:00 app[web.1]: cache: [GET /] miss 
2011-09-04T16:06:28+00:00 heroku[router]: GET corporatefox.heroku.com/ dyno=web.1 queue=0 wait=0ms service=754ms status=404 bytes=728 
2011-09-04T16:06:28+00:00 heroku[nginx]: 65.7.186.42 - - [04/Sep/2011:09:06:28 -0700] "GET/HTTP/1.1" 404 728 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" corporatefox.heroku.com 
2011-09-04T16:06:35+00:00 app[web.1]: 
2011-09-04T16:06:35+00:00 app[web.1]: 
2011-09-04T16:06:35+00:00 app[web.1]: Started GET "/pages/home" for 65.7.186.42 at 2011-09-04 09:06:35 -0700 
2011-09-04T16:06:35+00:00 app[web.1]: Processing by PagesController#home as HTML 
2011-09-04T16:06:35+00:00 app[web.1]: Rendered pages/home.html.erb within layouts/application (17.0ms) 
2011-09-04T16:06:35+00:00 app[web.1]: Rendered layouts/_stylesheets.html.erb (25.3ms) 
2011-09-04T16:06:35+00:00 app[web.1]: Completed 500 Internal Server Error in 92ms 
2011-09-04T16:06:35+00:00 app[web.1]: 
2011-09-04T16:06:35+00:00 app[web.1]: ActionView::Template::Error (application.css isn't precompiled): 
2011-09-04T16:06:35+00:00 app[web.1]:  1: <%= stylesheet_link_tag 'application' %> 
2011-09-04T16:06:35+00:00 app[web.1]:  2: <%= stylesheet_link_tag 'blueprint/screen', :media => 'screen' %> 
2011-09-04T16:06:35+00:00 app[web.1]:  3: <%= stylesheet_link_tag 'blueprint/print', :media => 'print' %> 
2011-09-04T16:06:35+00:00 app[web.1]: app/views/layouts/_stylesheets.html.erb:1:in `_app_views_layouts__stylesheets_html_erb__1720273165801032019_31408840' 
2011-09-04T16:06:35+00:00 app[web.1]: app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb___1444640675865794326_32133320' 
2011-09-04T16:06:35+00:00 app[web.1]: 
2011-09-04T16:06:35+00:00 app[web.1]: 
2011-09-04T16:06:35+00:00 app[web.1]: cache: [GET /pages/home] miss 
2011-09-04T16:06:35+00:00 heroku[router]: GET corporatefox.heroku.com/pages/home dyno=web.1 queue=0 wait=0ms service=120ms status=500 bytes=728 
2011-09-04T16:06:35+00:00 heroku[nginx]: 65.7.186.42 - - [04/Sep/2011:09:06:35 -0700] "GET /pages/home HTTP/1.1" 500 728 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" corporatefox.heroku.com 
2011-09-04T16:06:42+00:00 app[web.1]: 
2011-09-04T16:06:42+00:00 app[web.1]: 
2011-09-04T16:06:42+00:00 app[web.1]: Started GET "/" for 65.7.186.42 at 2011-09-04 09:06:42 -0700 
2011-09-04T16:06:42+00:00 app[web.1]: 
2011-09-04T16:06:42+00:00 app[web.1]: ActionController::RoutingError (No route matches [GET] "/"): 
2011-09-04T16:06:42+00:00 app[web.1]: 
2011-09-04T16:06:42+00:00 app[web.1]: 
2011-09-04T16:06:42+00:00 app[web.1]: 
2011-09-04T16:06:42+00:00 app[web.1]: cache: [GET /] miss 
2011-09-04T16:06:42+00:00 heroku[nginx]: 65.7.186.42 - - [04/Sep/2011:09:06:42 -0700] "GET/HTTP/1.1" 404 728 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" corporatefox.heroku.com 
2011-09-04T16:14:42+00:00 heroku[slugc]: Slug compilation started 
2011-09-04T16:14:53+00:00 heroku[api]: Deploy 2fed989 by [email protected] 
2011-09-04T16:14:53+00:00 heroku[api]: Release v10 created by [email protected] 
2011-09-04T16:14:54+00:00 heroku[web.1]: State changed from up to bouncing 
2011-09-04T16:14:54+00:00 heroku[web.1]: State changed from bouncing to created 
2011-09-04T16:14:54+00:00 heroku[web.1]: State changed from created to starting 
2011-09-04T16:14:54+00:00 heroku[slugc]: Slug compilation finished 
2011-09-04T16:14:56+00:00 heroku[web.1]: Stopping process with SIGTERM 
2011-09-04T16:14:56+00:00 app[web.1]: >> Stopping ... 
2011-09-04T16:14:57+00:00 heroku[web.1]: Process exited 
2011-09-04T16:14:57+00:00 heroku[web.1]: Starting process with command `thin -p 48112 -e production -R /home/heroku_rack/heroku.ru start` 
2011-09-04T16:15:01+00:00 app[web.1]: >> Thin web server (v1.2.6 codename Crazy Delicious) 
2011-09-04T16:15:01+00:00 app[web.1]: >> Maximum connections set to 1024 
2011-09-04T16:15:01+00:00 app[web.1]: >> Listening on 0.0.0.0:48112, CTRL+C to stop 
2011-09-04T16:15:01+00:00 heroku[web.1]: State changed from starting to up 
2011-09-04T16:15:02+00:00 app[web.1]: Processing by PagesController#home as HTML 
2011-09-04T16:15:02+00:00 app[web.1]: Rendered pages/home.html.erb within layouts/application (13.2ms) 
2011-09-04T16:15:02+00:00 app[web.1]: Rendered layouts/_stylesheets.html.erb (24.1ms) 
2011-09-04T16:15:02+00:00 app[web.1]: Completed 500 Internal Server Error in 86ms 
2011-09-04T16:15:02+00:00 app[web.1]: 
2011-09-04T16:15:02+00:00 app[web.1]: ActionView::Template::Error (application.css isn't precompiled): 
2011-09-04T16:15:02+00:00 app[web.1]:  1: <%= stylesheet_link_tag "application" %> 
2011-09-04T16:15:02+00:00 app[web.1]:  2: <%= stylesheet_link_tag 'blueprint/screen', :media => 'screen' %> 
2011-09-04T16:15:02+00:00 app[web.1]:  3: <%= stylesheet_link_tag 'blueprint/print', :media => 'print' %> 
2011-09-04T16:15:02+00:00 heroku[router]: GET corporatefox.heroku.com/pages/home dyno=web.1 queue=0 wait=0ms service=755ms status=500 bytes=728 
2011-09-04T16:15:02+00:00 app[web.1]: app/views/layouts/_stylesheets.html.erb:1:in `_app_views_layouts__stylesheets_html_erb__4527639971944011061_33003340' 
2011-09-04T16:15:02+00:00 app[web.1]: app/views/layouts/application.html.erb:5:in `_app_views_layouts_application_html_erb__2040511387187567951_33642800' 
2011-09-04T16:15:02+00:00 app[web.1]: 
2011-09-04T16:15:02+00:00 app[web.1]: 
2011-09-04T16:15:02+00:00 app[web.1]: cache: [GET /pages/home] miss 
2011-09-04T16:15:02+00:00 heroku[nginx]: 65.7.186.42 - - [04/Sep/2011:09:15:02 -0700] "GET /pages/home HTTP/1.1" 500 728 "-" "Mozilla/5.0 (X11; Linux i686) AppleWebKit/534.30 (KHTML, like Gecko) Chrome/12.0.742.112 Safari/534.30" corporatefox.heroku.com 

risposta

27

Ho appena avuto lo stesso problema. Ho risolto il problema impostando config.assets.compile = true in config/environments/production.rb

MODIFICA: Funziona bene durante lo sviluppo, ma ha una penalizzazione delle prestazioni poiché la compilazione viene eseguita in fase di esecuzione. Vedere la risposta seguente per una soluzione migliore

+0

i cant ringraziarvi abbastanza. molte grazie! – John

+0

Nessun problema. Ho iniziato a provare sia Heroku che Rails oggi, quindi potrebbe esserci un altro modo. Immagino che uno dovrebbe piuttosto compilarli in qualche modo in avanti, anche se sembrava che sarebbero stati memorizzati nella cache comunque. – Arve

+0

Grazie per questo - http://stackoverflow.com/questions/7443536/blueprint-screen-css-isnt-precompiled - non ha funzionato. –

13

Un modo per risolvere questo problema è precompilare le risorse eseguendo rake assets:precompile. Si deve includere un runtime JavaScript per questo con l'aggiunta di

# Gems used only for assets and not required 
# in production environments by default. 
group :assets do 
    gem 'therubyracer' 
    gem 'sass-rails', " ~> 3.1.0" 
    gem 'coffee-rails', "~> 3.1.0"a 
    gem 'uglifier' 
end 

al Gemfile ed eseguire bundle install.

+1

Per i futuri lettori: questa risposta è più ideale della risposta selezionata. La soluzione ad alte prestazioni è precompilare (come dice questa risposta), non impostare compile = true. –

+7

Devi anche dire esplicitamente a Rails di includere i file CSS Blueprint nella precompilazione. Per config/environments/production.rb, aggiungi 'config.assets.precompile + =% w (blueprint/screen.css blueprint/print.css blueprint/ie.css)'. Vedi http://stackoverflow.com/questions/7443536/blueprint-screen-css-isnt-precompiled. Quindi precompilare * per produzione * con 'RAILS_ENV = pacchetto produzione rastrellare risorse: precompilare'. Questo articolo di Heroku spiega le tre opzioni per la compilazione delle risorse: http://devcenter.heroku.com/articles/rails31_heroku_cedar. Fai tutto questo * prima * spingendo su Heroku. –

+0

@ MarkBerry grazie! Ho avuto lo stesso problema e ora è risolto. Per quanto riguarda le immagini, devono essere aggiunte anche loro? – lanan

0

Ho provato a eseguire asset rake: precompilare e non riuscire a farlo funzionare. Ho il gruppo di risorse nel mio Gemfile. Ho letto da qualche parte che avrei dovuto fare in modo di precompilare l'ENV produzione:

RAILS_ENV=production bundle exec rake assets:precompile

quello non ha aiutato neanche. Ho finito con il config.assets.compile = true, che ha funzionato bene, ma mi piacerebbe che la soluzione reale funzionasse.

Non ho mai ricevuto il -----> Preparing Rails asset pipeline quando spingo a heroku che dicono che si dovrebbe ottenere.