2016-11-28 5 views
0

なぜ私のメインのscssファイルは 'application.scss'と呼ばれる必要がありますか?なぜそれは 'foo.scss'という名前ではなく、application.html.erbに含まれていますか?Rails 5 Asset Naming

manifest.js

// JS and CSS bundles 
// 
//= link_directory ../javascripts .js 
//= link_directory ../stylesheets .css 


// Images and fonts so that views can link to them 
// 
//= link_tree ../fonts 
//= link_tree ../images 

​​

エラー私は資産が宣言されていなかった

'foo.scss' を使用するCSSインポートは生産にプリコンパイルされます。 はconfig/initializers/assets.rbRails.application.config.assets.precompile += %w(foo.css)を追加し、i「はapplication.scss」ファイル名を使用している場合はそれだけで正常に動作してサーバー

を再起動します。

答えて

2

Ruby on Railsはアセットをプリコンパイルします。コンパイルファイルのデフォルト・マッチャは、あなたの宝石を含むapp/assetsフォルダから(これは自動的にすべての画像アセットが含まれます)application.jsapplication.cssおよびすべての非JS/CSSファイルが含まれています

[ Proc.new { |filename, path| path =~ /app\/assets/ && !%w(.js .css).include?(File.extname(filename)) }, /application.(css|js)$/ ] 

お持ちの場合は、他のmanifestsまたは個々のstylesheetsとあなたはconfig/initializers/assets.rbでプリコンパイルのアレイに追加することができます含めるようにJavaScriptファイル、:

Rails.application.config.assets.precompile += %w(foo.js foo.css) 

だから、これは本番モードであなたのmanifestファイルをプリコンパイルするためにレールを伝えます。そして、これはあなたのエラーがassets.rbにそれを追加し、サーバーを再起動すると言うものです。