1

conf/environments/production.rbすべてのjsファイルを個別にリストするファイルがあります。

conf.assets.precompile += %w (highcharts.js)
conf.assets.precompile += %w (schedule.js)
conf.assets.precompile += %w (new_event.js)
conf.assets.precompile += %w (old_event.js)
conf.assets.precompile += %w (event_controls.js)
conf.assets.precompile += %w (other_stuff.js)
...

新しいjsファイルがあるたびに、ここに手動でエントリを追加する必要があります。

このファイルを手動で管理しなくても、どうすればそれらすべてを含めることができますか?

4

1 に答える 1

1

あなたは技術的に間違った方向から問題に取り組んでいます。config.assets.precompile は少数の中心的なマニフェスト タイプ ファイル (application.js など) のみを参照する必要があり、マニフェスト ファイルは必要に応じて js ファイルを参照します。

たとえば、application.js は次のようになります。

//= require highcharts.js
//= require schedule.js
//= require new_event.js
//= require old_event.js
//= require event_controls.js
//= require other_stuff.js

このように設定すると、リストされたすべてのファイルがプリコンパイルされたバージョンの application.js に含まれ、レイアウトに含める必要があるファイルは application.js だけになります。

新しいファイルを自動的に追加するには、代わりに使用できます

//= require_tree .

これにより、application.js と同じディレクトリにあるすべての .js ファイルと、すべての子ディレクトリにあるファイルが含まれます。

実際には、アプリケーション内のすべての js ファイルを含む 1 つの application.js ファイルは多すぎます。ファイルを中央マニフェストのコレクションに分割できます。たとえば、charts.js、events.js、misc.js などです。これらのファイルを config.assets.precompile に追加します。その後、新しいファイルが必要になったら、production.rb ファイルではなく、マニフェスト ファイルを更新します。

于 2012-09-17T18:08:14.093 に答える