2011-10-12 13 views
18

本番モードでレールを起動すると、すべてのアセットがプリコンパイルされますが、application.cssアセットを提供することはできません。私はpublic/assetsを見て、プリコンパイルされたapplication.cssが存在します。レール3.1生産モードでプリコンパイルされたCSSが見つかりません

ただし、ページからアクセスしようとするたびに404が表示されます。

これは、サーバーの起動に使用する指示です。これは確かプリコンパイルされたアプリケーション-XXXを作る

<link href="/assets/application.css" media="screen" rel="stylesheet" type="text/css" /> 

RAILS_ENV=production bundle exec rake assets:clean 
RAILS_ENV=production bundle exec rake assets:precompile 
rails -e production 
+0

私はRails 3.1を使用しませんが、 'public'フォルダではなくアプリケーションのルートにある' assets'フォルダではありませんか?これが間違っているなら、私を許してください。 – bricker

+1

これは間違っています、それは 'public'フォルダにあります –

答えて

34

あなたがあなたのproduction.rbに次の行を追加してい静的な資産を提供するためにRailsの場合:

config.serve_static_assets = true 

を、私はそれがそれらを提供するようにApacheやnginxのできるようにする方が良いでしょう理解が、あなたならば、これは動作します

0

は、あなたが代わりのようなもののアプリケーションレイアウトのヘッドセグメントにおける

<%= stylesheet_link_tag "application" %> 

を持っていることを確認してくださいでした。 CSSが含まれます。

+0

はい、私はstylesheet_link_tagを持っています –

+0

どこにオリジナルのappliation.cssがありますか? /app/assets/stylesheets/application.cssにありますか?また、HTMLソースはスタイルシートのリンクタグの点でどのように見えますか? application.cssまたはプリコンパイルされたアプリケーション-xxx.cssを参照していますか? – emrass

+0

元のapplication.cssは/ app/assets/stylesheets /にあります。 htmlソースは、プリコンパイルされたアプリケーション-xxx.cssを参照しています –

3

したがって、レールは、それがプリコンパイルする静的資産を提供する責任を負いません。レールの代わりに静的資産を提供するように、使用するWebサーバー(つまりnginx)を構成する必要があります。私はこれがドキュメント上でははるかに明確だったと思う。

+0

同じようにサーバーを設定する方法についてのリンクを提供できますか? –

関連する問題