2011-12-23 28 views
11

静的パブリック/ 404.htmlページを構築しています。 Rails 3.1より前はpublic/style.cssを使って参照できます。しかし今、アセットパイプラインでは、私は何にリンクするか分からない。スタイルはasset/application.cssにまとめられると聞きました。しかし、生産にはタイムスタンプが付いてくるでしょう。404スタティックページのRails 3.1アセットパイプラインCSSスタイル

静的な404.htmlを私が扱う標準的なスタイルでスタイルするのに最適な方法は何ですか?

答えて

5

3.1のアセットにはプロダクションでダイジェストが付属していますが、通常のファイルをそのまま使用することができます。つまり、/assets/application.cssにリンクしても問題はありません(試してみてください:)。

+0

感謝に行きます!私はこれが開発環境のものを確認できないことを意味するのでしょうか? devのように、ファイルはマージされません。 – lulalala

+0

あなたもそれを行うことができるはずです。 '/ assets/application.css'を呼び出すと、すべての連結コードが表示されます。 '?body = 1'オプションを付けて呼び出すと、その特定のファイルの内容だけが表示されます。 –

+4

...遠くの有効期限のヘッダーを使用している場合は、この解決法はあなたを酷くしていませんか? application.cssを更新し、そのファイルがすでにキャッシュされている場合はどうなりますか?彼らはあなたの更新されたスタイルを取得しません。 – jsharpe

15

静的エラーページをアセットパイプラインでプリコンパイルすることもできます。 application.rbインサイド

config.assets.paths << "#{Rails.root}/app/assets/html" 
config.assets.precompile += %w(404.html 500.html) 

assets/html/ファイル404.html.erb500.html.erbで作成しstylesheet_link_tag, javascript_include_tag, image_tagのように、そこに多くのヘルパーを使用します。

次に、この巧妙な解決のために、プリコンパイルpublic/assets/404.htmlpublic/assets/500.html

すべてのクレジットを使用するようにセットアップサーバーはhttp://neovintage.blogspot.cz/2012/02/precompile-static-html-pages-with-rails.html

+2

Rails 4では、これも必要です:http://stackoverflow.com/questions/14284278/how-to-include-actionview-helpers-in-the-assets-pipeline – Petr

+1

また、それらはerbファイルでなければなりません、HAMLではありませんhttp://icelab.com.au/articles/precompiled-rails-static-404-and-500-pages/ – xxjjnn

+1

HAMLのエラーページには別の素晴らしい解決策があります:http://devoh.com/blog/ 2012/09/asset-pipeline-error-pages – Darkside

関連する問題