Tengo varias aplicaciones de rails 3.1, y estoy teniendo este problema en todos ellos.Archivos JS incluidos dos veces en la aplicación de raíles
Tengo un montón de archivos js que se incluyen en mi archivo application.js. Aquí está mi application.js:
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require_self
//= require_tree .
El problema es que cuando, development.rb, he config.assets.debug establece en true, todos mis archivos javascript llegar doble incluido en la cabecera. En realidad, no están explícitamente doblemente incluidos, sino que se incluyen una vez individualmente y una vez como parte de un archivo compilado application.js. Las etiquetas js include se ven así:
<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>
…
¿Qué demonios? El resultado de esto es que varios comportamientos de JQuery onClick() se realizan dos veces y otras tonterías. ¿Cuál es el problema aquí? Para el registro, aquí está toda mi archivo development.rb:
Geobooks::Application.configure do
# Settings specified here will take precedence over those in config/application.rb
# In the development environment your application's 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
Tiene razón en que los archivos js están compilados en el archivo application.js, pero eso ya lo sabía. Precompilo mis activos antes de enviar mi aplicación a heroku. Parece que debería eliminar mis activos precompilados, gitIgnore el manifest.yml y dejar que Heroku maneje el precompilamiento. Voy a intentar eso. – CharlieMezak
@CharlieMezak hizo eso? –