サブディレクトリマニフェストファイルの資産事前編集
-
25-10-2019 - |
質問
私はRails 3.1を使用しています。
assets
javascripts
admin
admin.js
a1.js
client
client.js
c1.js
admin.jsはこのように見えます
//
//= require jquery
//= require jquery_ujs
//= require a1
client.jsはこのように見えます
//
//= require jquery
//= require c1
開発モードではすべてが正常に機能します。 Rake Assets:Precompileを行うと、公開/資産にJavaScriptファイルが表示されません。私はすべてのスタイルシートを公開/資産で見ています。
これは、この場合のマニフェストファイル(admin.jsおよびclient.js)がサブディレクトリにあるという事実に関係していると思います。
これは、Rake Assets:Precompileがサブディレクトリを検討しないということです。
これを修正する方法に関する提案。 JavaScriptファイルをたくさん持っているので、ファイルをレイアウトした方法でファイルを使用することを好みます。
解決
Rails構成には、事前コンパイルするファイルを設定するPrecompile配列があります。 application.js and application.css in どれか ディレクトリ。
Precompile配列にファイルを追加する必要があります。
config.assets.precompile += ['admin/admin.js', 'client/client.js']
そして、彼らは次のようにアクセスできるはずです:
javascript_include_tag "admin/admin.js"
と
javascript_include_tag "client/client.js"
他のヒント
Rails 3.2.6では、SubdirsでJavaScriptアセットを管理する場合、各subdir 'index.js'のマニフェスト(OPの 'admin.js'および 'client.js'とは対照的に)に名前を付けることができます。 /production.rb Say:
config.assets.precompile += ['admin.js', 'client.js']
舞台裏の魔法は、index.jsの仕様に従ってadmin.jsに出力して、管理者のサブディールを見てコンパイルします。クライアントの場合も同様です。
その後、資産は次のようにアクセスできます。
javascript_include_tag 'admin'