Подтвердить что ты не робот

Файлы JS с двойным включением в приложение rails

У меня есть несколько рельсов 3.1 приложений, и у меня есть эта проблема во всех них.

У меня есть куча js файлов, которые входят в мой файл application.js. Здесь моя application.js:

//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require_self
//= require_tree .

Проблема в том, что когда, development.rb, у меня есть config.assets.debug, установленный в true, все мои файлы javascript получают двойное включение в заголовок. На самом деле, они явно не включаются в двойное включение, но они включаются один раз индивидуально и один раз как часть скомпилированного файла application.js. Теги js include выглядят следующим образом:

<script src="/assets/jquery.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery-ui.js?body=1" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script>
<script src="/assets/application.js?body=1" type="text/javascript"></script>
<script src="/assets/animation_elements.js?body=1" type="text/javascript"></script>
<script src="/assets/categories.js?body=1" type="text/javascript"></script>
<script src="/assets/facebox.js?body=1" type="text/javascript"></script>
…

Так что, черт возьми? Результатом этого является то, что различные поведения JQuery onClick() выполняются дважды и другие глупости. в чем проблема? Для записи здесь весь мой файл development.rb:

Geobooks::Application.configure do
  # Settings specified here will take precedence over those in config/application.rb

  # In the development environment your application code is reloaded on
  # every request.  This slows down response time but is perfect for development
  # since you don't have to restart the webserver when you make code changes.
  config.cache_classes = false

  # Log error messages when you accidentally call methods on nil.
  config.whiny_nils = true

  # Show full error reports and disable caching
  config.consider_all_requests_local       = true
  #config.action_view.debug_rjs             = true
  config.action_controller.perform_caching = false

  # Don't care if the mailer can't send
  config.action_mailer.raise_delivery_errors = false

  # Print deprecation notices to the Rails logger
  config.active_support.deprecation = :log

  # Only use best-standards-support built into browsers
  config.action_dispatch.best_standards_support = :builtin

  #for devise
  config.action_mailer.default_url_options = { :host => 'localhost:3000' }

  # Do not compress assets
  config.assets.compress = false

  # Expands the lines which load the assets
  config.assets.debug = false
end
4b9b3361

Ответ 1

Звучит так, как будто вы могли предварительно скомпилировать свои активы в какой-то момент. Проверьте содержимое файла application.js, который находится в разработке. Я предполагаю, что вы увидите вложенное содержимое всех ваших других необходимых файлов. Чтобы исправить это, просто удалите /public/assets/javascripts/application.js и откажитесь от своего сервера.

Если это не сработает, выясните, откуда приходит вторая копия (используя Firebug или аналогичный для проверки обслуживаемых файлов) и публикуйте обновление, и я увижу, что я могу сделать.