Ответ 1
Решается путем добавления:
config.assets.precompile += %w( index.js )
до config/application.rb
. (не config/environments/production.rb
)
Протестировано в Rails 4.0 beta1.
Это общий вопрос здесь, но ни одно из решений не устранило мою проблему, поэтому вот оно:
Я добавляю ace.js в свое приложение rails4. Так что я сделал
- 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
Он не создает дайджест-версию файла туза.
Я что-то упустил?
Решается путем добавления:
config.assets.precompile += %w( index.js )
до config/application.rb
. (не config/environments/production.rb
)
Протестировано в Rails 4.0 beta1.
Если вы добавляете каталог ace
в качестве активов, вы должны поместить файлы js
в каталог vendor/assets/ace/javascripts
(который вы должны создать).
Обычно вам не нужно config.assets.precompile += %w( index.js )
, Sprockets справится с этим просто отлично. Если в каталог vendors/assets/ace
есть только один файл js, вам не нужен index.js. index.js
будет правильным, если у вас много подкаталогов и файлов под vendor/assets/ace/javascripts/your_vendor_js_library
. Последнее: вам не нужно <%= javascript_include_tag "ace" %>
, он дублирует содержимое <%= javascript_include_tag "application" %>
.