【问题标题】:blueprint css rails 3.1 help蓝图 css rails 3.1 帮助
【发布时间】:2011-11-10 03:52:01
【问题描述】:

我的蓝图 css 在我的本地机器上工作,但是当我推送到 heroku 时出现错误。

我的app/assets/stylesheets folder 中存储了蓝图,这是我正在使用的样式表标签:

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

在我的 heroku 日志中,它说 application.css 没有预编译,我认为这可能是错误,但我不知道如何修复它。

这是我的 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

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 heroku ruby-on-rails-3.1


    【解决方案1】:

    我也遇到了同样的问题。我通过在config/environments/production.rb 中设置config.assets.compile = true 解决了它

    编辑:这在开发时工作正常,但由于编译是在运行时执行的,所以会降低性能。请参阅下面的答案以获得更好的解决方案

    【讨论】:

    • 没问题。今天开始尝试 Heroku 和 Rails,所以可能还有另一种方法。我想人们应该以某种方式预先编译它们,尽管它们似乎无论如何都会被缓存。
    • 感谢这个 - stackoverflow.com/questions/7443536/… - 没用。
    • 你摇滚。我一直在努力解决这个问题。
    • 此解决方案可能有效,但不是理想的解决方案。通过设置 compile = true,您将在运行时编译资产,这会带来性能成本。理想的解决方案是 Martin Frank 的回答。每次将应用程序部署到生产环境时,您都需要 rake assets:precompile。预编译资产的性能更高。
    • 非常感谢。我整晚都在努力解决这个问题,你的解决方案奏效了。 +1
    【解决方案2】:

    解决此问题的一种方法是通过运行rake assets:precompile 预编译资产。您必须为此添加一个 javascript 运行时

    # 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
    

    Gemfile 并运行bundle install

    【讨论】:

    • 对于未来的读者:这个答案比选择的答案更理想。高性能解决方案是预编译(正如这个答案所说),而不是设置 compile=true。
    • 您还必须明确告诉 Rails 在预编译中包含蓝图 CSS 文件。在 config/environments/production.rb 中添加 config.assets.precompile += %w( blueprint/screen.css blueprint/print.css blueprint/ie.css )。见stackoverflow.com/questions/7443536/…。然后使用RAILS_ENV=production bundle exec rake assets:precompile 预编译用于生产。这篇 Heroku 文章解释了编译资产的三个选项:devcenter.heroku.com/articles/rails31_heroku_cedar推送到 Heroku 之前完成所有这些操作。
    • @MarkBerry 谢谢!我有同样的问题,现在解决了。还需要添加图片吗?
    • @Shvetusya- 看起来我的图片已自动包含在内。检查您的 public/assets 文件夹以查看预编译的资产。
    【解决方案3】:

    尝试设置您的:

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

    config/environments/production.rb

    我相信比我更有经验的人可以告诉我们为什么所有 css 文件都没有作为标准预编译。我也才刚刚开始!

    这里至少有一个讨论: Rails 3.1 asset pipeline - missing files from public/assets - why isn't this the default?

    【讨论】:

      【解决方案4】:

      我尝试运行 rake assets:precompile 但无法正常工作。我的 Gemfile 中有资产组。我在某处读到我应该确保预编译生产环境:

      RAILS_ENV=production bundle exec rake assets:precompile

      这也没有帮助。我最终做了 config.assets.compile = true,它工作得很好,但我很想得到真正的解决方案。

      在推送到他们说应该得到的 heroku 时,我从来没有得到 -----&gt; Preparing Rails asset pipeline

      【讨论】:

        猜你喜欢
        • 2012-01-27
        • 2011-10-21
        • 2011-09-13
        • 2012-02-05
        • 2011-12-07
        • 2011-12-24
        • 1970-01-01
        • 2018-06-28
        • 1970-01-01
        相关资源
        最近更新 更多