生産モードでは、レールはアセットパイプラインからプリコンパイルされたアセットを見つけることができません。Railsで私の資産が見つからないのはなぜですか?
私はCentOS上でRVM内で動作するrails 3.2.0とruby 1.9.3を使用しています。このアプリケーションと連携して実行中のWebサーバーはありません。もともとレール3.0アプリだったので、アプリケーションはアセットパイプラインを使用するように最近更新されました。私が期待するよう
rake assets:clean
rake assets:precompile
を実行した後、私は、公共/資産のハッシュ化されたコンテンツを参照してください。ファイルの最後にあるハッシュは、ページソースに表示されているハッシュと一致します。
しかし、実行時に、ここで私は、すべての資産のRailsのために見るものだが奉仕しようとします:私は、各資産の中に収容されているフォルダを参照することではないよ
Started GET "/assets/application-892c6227e631daf9a8e041b1d4d002ec.css" for 75.149.58.169 at 2012-03-14 11:42:43 -0700
ActionController::RoutingError (No route matches [GET] "/assets/application-892c6227e631daf9a8e041b1d4d002ec.css"):
を。資産へのすべての参照は、これらのようになります。
//css:
.class {
background: url(asset.png) no-repeat;
}
//erb:
<%= image_tag "asset.png" %>
<%= link_to "page", :class => "class" %>
production.rbで
資産パイプライン関連の設定:
config.serve_static_assets = false
config.assets.enabled = true
config.assets.compress = true
config.assets.debug = false
config.assets.compile = false
config.assets.digest = true
そして最後に、設定/ application.rbからの資産の設定:
config.assets.enabled = true
config.assets.version = '1.0'
レールサーバープロセスを開始するユーザーは、パブリック/アセットに対する読み取り、書き込み、および実行の許可を持っているため、アクセス権の問題ではないと思います。私は構成ステップを逃しましたか?
編集
に私は、資産がプリコンパイルされていないことを示すエラーがないことに気づいたので、私はに「/assets/application-892c6227e631daf9a8e041b1d4d002ec.css」を付加することにより、Webページからスタイルシートにアクセスしよう
http://www.myapp.com"/assets/application-892c6227e631daf9a8e041b1d4d002ec.css"
これが機能し、スタイルシートが開きました。
関連/複製:http://stackoverflow.com/questions/5760661/rails-favicon-ico-not-found –