標準的な慣行に従って、「/ app/assets/stylesheets/application.css」にcssを含むデフォルトのレイアウトを使用するRails 3.1アプリケーションがあります。これは、アプリケーションの主要部分のアセット パイプライン処理でうまく機能します。
しかし、次のように /app/views/layouts/showreports.html.erb レイアウトを使用するレポートを生成するときは、別の「レポート」レイアウトを使用します。
<!DOCTYPE html>
<html>
<head>
<%= stylesheet_link_tag "showreports" %>
<%= javascript_include_tag "showreports" %>
<%= csrf_meta_tag %>
</head>
<body>
<div id="mainarea" class="container">
<div class="span-24 last">
<%= yield %>
</div>
</div>
</body>
rake assets:clean; rake assets:precompile
アセットをプリコンパイルし、マニフェスト ファイル (/public/assets/manifest.yml) で問題がないことを確認するために使用していますが、showreports.css または showreports.js への参照が表示されません。
プログラムを開発モードでテストすると、当然のことながら、それらのファイルを見つけることができません。
これは Rails 3.1 での基本的なスプロケットの質問だと思いますが、スプロケットはアセットのすべてのレイアウト ファイル (デフォルトの application.html.erb ファイルを超えて) を解析するのに十分スマートであると思いました。
これがバグなのか、それともこれがどのように機能するかについての私の誤解なのか疑問に思っています.
乾杯、
グレッグ
アップデート
さらにいじくり回した後、これが私にとって最も理にかなっていたので、私は自分の質問に答えています...
私が間違っていたのは、「showreports.css」および「showreports.js」という名前のファイルをマニフェスト ファイルとして使用していたことです。
私の修正は 、showreports.(css|js) を作成してから、それぞれのディレクトリ内で application.(css|js) に名前を変更することでした/app/assets/stylesheets/showreports
。/app/assets/javascripts/showreports
その後、rake assets:precompile
それらをうまく見つけて、マニフェストファイルに正しく追加しました。