18

Rails を本番モードで起動すると、すべてのアセットがプリコンパイルされますが、application.css アセットを提供できません。調べたpublic/assetsところ、コンパイル済みの application.css が存在します。

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

これらは、サーバーを起動するために使用する手順です。

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

3 に答える 3

34

Rails で静的アセットを提供する場合は、次の行を production.rb に追加します。

config.serve_static_assets = true

apache や nginx でサービスを提供できるようにしたほうがよいことは理解していますが、これは Rails スタンドアロン サーバーを使用している場合 (または少なくともシンで動作する場合) に機能します。

于 2011-12-30T14:48:22.423 に答える
3

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

于 2011-10-16T01:00:05.543 に答える
0

あなたが持っていることを確認してください

<%= stylesheet_link_tag "application" %>

次のようなものではなく、アプリケーション レイアウトのヘッド セグメントに

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

これにより、プリコンパイル済みの application-xxx.css が確実に含まれるようになります。

于 2011-10-12T09:38:26.310 に答える