1

プリコンパイルするアセットをカスタマイズしようとしています。本番環境では、application.jsとapplicaiton.cssのみをコンパイルし、後続のすべてのファイルをコンパイルする必要はありません。

たとえば、次のファイルを指定すると、プリコンパイルrakeタスクを実行するときに1つのファイル(appliation.css)のみが出力されます。

##application.css
//include components/form.elements
//include components/lists

デフォルトでは、assetsディレクトリ内のすべてのアセットをプリコンパイルしますが、これは非常に面倒です。

EDITの修正は、アセットディレクトリ内のすべての非jsおよびcssファイルをプリコンパイルするデフォルトです。ただし、form.elements.jsのようなファイルがある場合、スプロケットはそれがjs/css以外のファイルであると考えてプリコンパイルします。

4

2 に答える 2

0

スプロケットのドキュメントを確認してください。非常に広範で、よく書かれています。

特定の問題の場合、以下には再帰的にとディレクトリapplication.cssのみが含まれます。components/form_elementscomponents/lists

/*
 *= require_tree components/form_elements
 *= require_tree components/lists
*/

form_elementsおよびlistsがcssファイルの場合は、。に置き換えrequire_treerequireください。

于 2011-09-21T14:19:38.480 に答える
0

デフォルトのプリコンパイルオプションは、余分なピリオドを含むファイルがない限り機能します。(jquery.treeview.js)のように

コンパイルしたい個々のファイルを明示的に定義することで、アセットを希望どおりにコンパイルすることができました。

 config.assets.precompile = [ 'application.css' ]

現在、パブリックアセットフォルダには、最小化されたすべての補足ファイルコンテンツを含むファイルが1つだけあります。

編集

Railsのデフォルトのプリコンプライオプションがに変更されました

[ Proc.new{ |path| !File.extname(path).in?(['.js', '.css']) }, /application.(css|js)$/ ]

そのため、余分なピリオドのあるファイルは正しくコンパイルされます

于 2011-09-22T20:14:36.453 に答える