12

これはここでよくある質問ですが、どの解決策も私の問題を解決しなかったので、ここに行きます:

rails4アプリにace.jsを追加しているので、

- Added vendor/assets/ace/ace.js
- Created vendor/assets/ace/index.js , with content
  //= require ace  
- Added the following to my production.rb
  config.assets.precompile += %w( index.js )  
  config.assets.paths << Rails.root.join("vendor", "assets", "ace")

したがって、私のレイアウトファイルには次のものがあります。

<%= javascript_include_tag "ace" %>

devでは問題なく動作しますが、実行すると次のようになります。

RAILS_ENV=production bundle exec rake assets:precompile

ダイジェストバージョンのaceファイルは作成されません。

私は何かが足りないのですか?

4

2 に答える 2

22

これは、次を追加することで解決されます。

config.assets.precompile += %w( index.js )

config/application.rb。(ではないconfig/environments/production.rb

Rails4.0ベータ1でテスト済み。

于 2013-04-01T00:02:48.387 に答える
2

aceディレクトリをアセットとして追加する場合は、jsファイルをvendor/assets/ace/javascriptsディレクトリ(作成する必要があります)の下に配置する必要があります。

通常は必要ありませんがconfig.assets.precompile += %w( index.js )、Sprocketsはそれをうまく管理します。ディレクトリから追加するjsファイルが1つvendors/assets/aceしかない場合は、そこにindex.jsは必要ありません。のindex.js下にサブディレクトリとファイルがたくさんある場合は、これが適切ですvendor/assets/ace/javascripts/your_vendor_js_library。最後の仕上げ:あなたは必要ありません<%= javascript_include_tag "ace" %>、それはの内容を複製し<%= javascript_include_tag "application" %>ます。

于 2013-02-14T19:40:57.730 に答える