web-dev-qa-db-ja.com

blueprint / screen.cssはプリコンパイルされていません

私はMichael Hartlの優れたRoRチュートリアルに従っていますが、RoR 3.1を使用しています。私はRoR 3.1の初心者で、アセットパイプラインに関連するヘルプが必要です。これが私の問題です:

セクション5.3に進む前に、Herokuにプッシュして、状況がどのように発展するかを確認したいと思いました。驚いたことに、 "GET /"を実行するとエラー500が発生します。私のローカル開発環境ではすべてが正常に行われました。次に、ローカルのsample_appを本番環境(Rails s -e production)。同じ結果、エラー500:

Sprockets::Helpers::RailsHelper::AssetPaths::AssetNotPrecompiledError in Pages#home

Showing /Users/john/Projects/sample_app/app/views/layouts/_stylesheets.html.erb where line #4 raised:

blueprint/screen.css isn't precompiled

サポート情報:

  1. Blueprint CSSディレクトリをvendor/assets/stylesheetsに配置しました。
  2. 私はマイケルのセクション13.1.4のアドバイスに従い、私のapp/views/layouts/application.html.erbとして次のようにしました:

    <!DOCTYPE html>
    <html>
      <head>
        <title><%= title %></title>
        <%= render 'layouts/stylesheets' %>
        <%= stylesheet_link_tag "application" %>
        <%= javascript_include_tag "application" %>
        <%= csrf_meta_tags %>
      </head>
      <body>
        <div class="container">
          <%= render 'layouts/header' %>
          <section class="round">
            <%= yield %>
          </section>
          <%= render 'layouts/footer' %>
        </div>
      </body>
    </html>
    
  3. App/views/layouts/_stylesheets.html.erbのコンテンツ:

    <!--[if lt IE 9]>
    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
    <![endif]-->
    <%= stylesheet_link_tag 'blueprint/screen', :media => 'screen' %>
    <%= stylesheet_link_tag 'blueprint/print',  :media => 'print' %>
    <!--[if lt IE 8]><%= stylesheet_link_tag 'blueprint/ie' %><![endif]-->
    
  4. Bundle exec rake assets:precompileを実行しました。

  5. Public/assets/manifest.ymlのコンテンツ:

    ---
    logo.png: logo-8e0a5ad292fbb13a2b07e68fa3995406.png
    Rails.png: Rails-bd9ad5a560b5a3a7be0808c5cd76a798.png
    blueprint/plugins/buttons/icons/cross.png: blueprint/plugins/buttons/icons/cross-2ebcd25368006d1b7b0c5b7d6b523ab3.png
    blueprint/plugins/buttons/icons/key.png: blueprint/plugins/buttons/icons/key-55237526967cbcab3e8cfb12f0029d88.png
    blueprint/plugins/buttons/icons/tick.png: blueprint/plugins/buttons/icons/tick-3f5fc1f52b505b93f88263e0432d25ce.png
    blueprint/plugins/buttons/readme.txt: blueprint/plugins/buttons/readme-3ff7f5dbb0288d71f70682fdbe9d86ec.txt
    blueprint/plugins/fancy-type/readme.txt: blueprint/plugins/fancy-type/readme-e7ed185d1a9f23256d418ab929b464d9.txt
    blueprint/plugins/link-icons/icons/doc.png: blueprint/plugins/link-icons/icons/doc-b071fd74b88ff38cda8360a53f493013.png
    blueprint/plugins/link-icons/icons/email.png: blueprint/plugins/link-icons/icons/email-28104e72b3418737d4b9b329c12ec358.png
    blueprint/plugins/link-icons/icons/external.png: blueprint/plugins/link-icons/icons/external-ee6d976ddb80125fafe1a33c6f8aed10.png
    blueprint/plugins/link-icons/icons/feed.png: blueprint/plugins/link-icons/icons/feed-59bc8604661681639d25cb7015a32c38.png
    blueprint/plugins/link-icons/icons/im.png: blueprint/plugins/link-icons/icons/im-afeeb6e0b652c1edb1441bf0fb428596.png
    blueprint/plugins/link-icons/icons/lock.png: blueprint/plugins/link-icons/icons/lock-d73c4b3b57ce72cb6dbd8b265507ff75.png
    blueprint/plugins/link-icons/icons/pdf.png: blueprint/plugins/link-icons/icons/pdf-c4c543e5103a8516839a7846b91e1ac4.png
    blueprint/plugins/link-icons/icons/visited.png: blueprint/plugins/link-icons/icons/visited-fb2370448bc4ea5d079e963a8c0d900b.png
    blueprint/plugins/link-icons/icons/xls.png: blueprint/plugins/link-icons/icons/xls-5399729cd31dffc492a04b3805cd0be1.png
    blueprint/plugins/link-icons/readme.txt: blueprint/plugins/link-icons/readme-42c02030199cd36a671d4b623cb4dc36.txt
    blueprint/plugins/rtl/readme.txt: blueprint/plugins/rtl/readme-8d11bf76e19fb3fc7dbc6c2ddb54b92d.txt
    blueprint/src/grid.png: blueprint/src/grid-973add038ed86febca85f03e8b35b94a.png
    jquery-ui.min.js: jquery-ui-7e33882a28fc84ad0e0e47e46cbf901c.min.js
    jquery.min.js: jquery-8a50feed8d29566738ad005e19fe1c2d.min.js
    application.js: application-a552e1db33b8be6a42eedf1261916f3c.js
    application.css: application-214e0c0742f20b334e8a7776e0a4c71d.css
    
  6. Manifest.ymlにblueprint/screen.cssがありません。

何が欠けていますか?

37
John Indra

http://guides.rubyonrails.org/asset_pipeline.html#precompiling-assets から

含める他のマニフェストまたは個々のスタイルシートとJavaScriptファイルがある場合は、それらをプリコンパイル配列に追加できます

つまり、config/environments/production.rbで、

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

またはキャッチオール:

config.assets.precompile += %w( *.css *.js )
75
Jeppe Liisberg

Application.cssファイルにブループリントスタイルシートへの参照を追加しました。このようにして、スタイルシートを変更するためにレイアウトを変更する必要はありません。application.cssファイルを変更し、rake assets:precompileを実行して、Webサーバーを再起動するだけです(webrickまたは同様の場合)。

私のapplication.cssは現在次のようになっています:

/*
 * This is a manifest file that'll automatically include all the stylesheets available in this directory
 * and any sub-directories. You're free to add application-wide styles to this file and they'll appear at
 * the top of the compiled file, but it's generally better to create a new file per style scope.
 *= require_self
 *= require_tree ./blueprint
 *= require_tree . 
 */
3
T0xicCode

上記のように、本番環境でアセットをプリコンパイルしたい場合があります。そして、カピストラーノを使用する場合は、コードの更新後に行うことができます。

require 'bundler/capistrano'

after 'deploy:update_code' do  
  run "cd #{release_path}; Rails_ENV=#{Rails_env} bundle exec rake assets:precompile"
end
2
Sirex

この問題に関する私自身の経験から、Michael Hartlによる優れたRoRチュートリアルも経験していたので、この時点で除外される可能性があると思う1つのステップがありました...

bundle exec rake assets:precompile    
git add public/assets
git commit -m "vendor compiled assets"
git Push heroku

私はこれを発見しました ここ

2
Dave Haynes