2011-11-29 10 views
8

私は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 

開発モードですべて正常に動作します。レーキ資産を実行すると、プリコンパイルされたときにパブリック/アセットにjavascriptファイルが表示されません。パブリック/アセットのすべてのスタイルシートが表示されます。

私は、これは、この場合、マニフェストファイル(admin.jsとclient.js)がサブディレクトリにあるという事実に関係していと思います。

rakeアセット:プリコンパイルはサブディレクトリを調べません。

これを修正する方法に関するご提案です。私はjavascriptファイルの束を持っているので、私がレイアウトした方法でファイルを持っていることを好む。

答えて

11

プリコンパイルするファイルを設定し、Railsのconfigにプリコンパイル配列があります。 application.jsとapplication.cssはのいずれかのディレクトリにあります。

あなたがプリコンパイル配列にファイルを追加する必要があります

 
config.assets.precompile += ['admin/admin.js', 'client/client.js'] 

そして、彼らは経由でアクセスする必要があります:レール3.2.6で

 
javascript_include_tag "admin/admin.js" 

 
javascript_include_tag "client/client.js" 
3

サブディレクトリ内のjavascriptアセットを管理する場合、サブディレクトリ 'index.js'のマニフェストに名前を付けることができます(OPの「admin.js」と「client.js」)、およびその後のconfig /環境/ production.rbで言う:舞台裏

config.assets.precompile += ['admin.js', 'client.js'] 

マジックはインデックス内の仕様に応じて、管理サブディレクトリに見て、コンパイルします.js、admin.jsに出力する。同様にクライアントのために。

資産はその後経由でアクセスできるようになります:

javascript_include_tag 'admin' 
関連する問題