Domanda

Il mio progetto css funziona sulla mia macchina locale, ma quando spingo a Heroku ottengo un errore.

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' %>

Nel mio log Heroku, si dice application.css isnt precompilato e penso che potrebbe essere l'errore, ma non so come risolvere il problema.

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 XXXXXXXX@yahoo.com
2011-09-04T16:06:10+00:00 heroku[api]: Release v9 created by XXXXXXXX@yahoo.com
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 foxgrade@yahoo.com
2011-09-04T16:14:53+00:00 heroku[api]: Release v10 created by foxgrade@yahoo.com
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
È stato utile?

Soluzione

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

EDIT: questo funziona bene, mentre in via di sviluppo, ma ha una riduzione delle prestazioni, come la compilazione viene eseguita in fase di esecuzione. Vedere la risposta qui sotto per una soluzione migliore

Altri suggerimenti

Un modo per risolvere questo problema è di precompilare il patrimonio 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

per il Gemfile ed eseguire bundle install.

Prova a impostare il vostro:

config.assets.precompile += %w( blueprint/screen.css blueprint/print.css )

in config/environments/production.rb

Sono sicuro che qualcuno con più esperienza di me ci può dire il motivo per cui tutti i file CSS non sono pre-compilati come standard. Sto solo cominciando appena fuori troppo!

Ecco almeno una discussione: Rails 3.1 gasdotto patrimoniale - file mancanti da pubblici / attività - perché non è questo il default

?

Ho provato a eseguire le attività rastrello: precompilare e non sono riuscito a farlo funzionare. Ho il gruppo attivo nel mio Gemfile. Ho letto da qualche parte che avrei dovuto fare in modo di precompilare l'ENV di produzione:

RAILS_ENV=production bundle exec rake assets:precompile

Che non ha aiutato neanche. Ho finito per fare la config.assets.compile = true, che ha funzionato bene, ma mi piacerebbe ottenere la soluzione vera al lavoro.

Non ho mai ottenere il -----> Preparing Rails asset pipeline quando si spinge a Heroku che dicono si dovrebbe ottenere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top