質問

私は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'
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top