アプリケーションをRails 4.1.0
from 4.1.rc2
。 JSファイルのこれらのエラーの取得を開始しました
ActionView::Template::Error: Asset filtered out and will not be served: add `config.assets.precompile += %w( my_js )` to `config/application.rb` and restart your server
Herokuからの促しに応えて、Railsメンテナはsprockets_better_errors gemからの健全性チェックをRails 4.1にマージしました。 https:// github。 com/Rails/sprockets-Rails/pull/84
その目的は、アプリを開発モードで実行したときに本番環境で表示されるアセットパイプラインエラーを明らかにすることです。
JavaScriptファイルをapp/assets/javascripts /フォルダーに配置する代わりに、アプリケーションレイアウトでjavascript_include_tag
を使用している可能性があります。
ファイルをapp/assets/javascripts /フォルダーに移動できます。
または、config/application.rbファイルを更新して以下を含める必要があります。
config.assets.precompile += %w( my_js )
ファイル名には.jsファイル拡張子を含めないでください。
アプリケーションレイアウトヘッダーにstylesheet_link_tag params[:controller]
のようなものを追加した場合、異なるコントローラー上に別個のJSアプリケーションがありますが、基本レイアウトは同じであるため、これに非常に悩まされます。これを乗り越えて、すべてのアセットをプリコンパイルして作業を続行する(ただし、最終的なソリューションではない)ための簡単な方法は、次を/config/initializers/assets.rbに追加することです。
Rails.application.config.assets.precompile += [/.*\.js/,/.*\.css/]
これは.js.coffee
と.css.scss
にも当てはまることに注意してください。.js
と.css
で十分です。
理想的には、@ zmilojkoによる解決策は機能しますが、このアプリにはアクティブな管理者もいます。
Rails.application.config.assets.precompile += %w(*.svg *.eot *.woff *.ttf *.gif *.png *.ico)
Rails.application.config.assets.precompile << /\A(?!active_admin).*\.(js|css)\z/
上記の行を/config/initializers/assets.rbに追加するだけです
上記のコードは、アクティブな管理ファイルをスキップしながらアセットをプリコンパイルします。そのため、2回処理されたり、順番がずれてエラーが発生したりすることはありません。
はい、ブラウザでエラーを読み取り、次のコード行を追加するだけでした。
Rails.application.config.assets.precompile += %w( depot.css )
/config/initializers/assets.rbファイルに、それは働きました。
<%= javascript_include_tag 'xxx' %>
あなたのエルブから、そしてあなたの中でassets/javascript/name_space/index.js.coffee
、これを追加
#= require ./xxx