3

アセット パスに次のファイルがあります。

javascripts/abc.js
templates/abc.js.mustache # this gets compiled to abc.js

当然、両方とも として要求されassets/abc.jsます。

修正はありますか?そうでない場合、Sprockets ソースのどの部分を変更する必要がありますか?

私の考えでは、エンジンが拡張子を削除できれば、十分にサフィックスを追加できます。

4

2 に答える 2

1

当たり前すぎるかもしれませんが、ファイルのリネームだけでいいのではないですか?あなたの質問の性質は理解していますが、それらのファイルに同じファイル名を強制する最終的な要件を想像するのは困難です。したがって、これは と を持ちfoobar.jsfoobar.js.mustacheこれは にコンパイルされfoobar.jsます。なぜ彼らは同じ名前を持っているのですか?彼らは同じことをしますか?あなたが私に尋ねるならば、これは設計上の欠陥です。

于 2011-11-10T08:02:23.080 に答える
1

私は同じ問題を抱えており、満足のいく解決策をまだ見つけていません。私のサイトには多くの複雑なフルスタック プラグイン (別名エンジン) があり、大量の css、js、および画像ファイルがあります。各プラグインで「styles.css」などの名前空間を使用するのはちょっと面倒です。Rails 3 にアップグレードするとき、ファイル リゾルバーがエンジン/プラグインを /styles に配置すると想定しましたが、そうではありません。それらはすべて 1 つの仮想パスに結合されます。

私の現在の一時的な解決策は、重複したファイル名をチェックする rake タスクを作成することです。コードをコミットする前と展開時に実行します。ハッキィ!それが役立つ場合は、素晴らしい、そうでない場合は、おそらく誰かがよりエレガントなソリューションを持っています...

于 2011-12-29T17:45:22.467 に答える