2012-05-11 30 views
11

Hasta ayer jQuery estaba cargando muy bien en mi aplicación Rails. Estaba jugando con la instalación de la gema depuradora/ruby-debug. Como probablemente sabrá, hay problemas con la gema depuradora en Rails 3 y no tuve éxito en instalar las dependencias, así que eliminé las gemas de mi Gemfile. Desde entonces, al cargar mi sitio, jQuery no se está cargando. Estos son los mensajes que veo en la consola:¿Por qué no se carga jQuery en mi aplicación Rails 3.2.3?

assets/jquery_ujs.js?body=1:377Uncaught ReferenceError: jQuery is not defined 
bootstrap-transition.js:24Uncaught TypeError: undefined is not a function 
bootstrap.js:3Uncaught ReferenceError: jQuery is not defined 
welcome:210Uncaught ReferenceError: $ is not defined 

Y aquí es mi archivo application.js:

//= require jquery 
//= require jquery_ujs 
//= require twitter/bootstrap 
//= require_tree . 

Si se me carga jQuery explícitamente en los diseños/application.html.erb, como tal, trabajos:

<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js" %> 
<%= javascript_include_tag "application" %> 

¿Alguna idea sobre lo que puedo hacer para resolver esto y volver a cargar jQuery? Buscando en .rvm/gems/ruby-1.9.3-p125/gems/jquery-rails-2.0.2/vendor/assets/javascripts Veo que jquery.js y jquery.min.js todavía están allí.

+0

¿Todavía tiene la línea 'gema 'jquery-rails'' en su gemfile? –

+0

Sure do. Incluso una gema instaló con éxito 'jquery-rails'. –

+0

¿Intentó poner jquery libs en la carpeta app/assets/javascripts? – uday

Respuesta

11

Gracias @Djj. Reordenar mi árbol de application.js parece haber resuelto el problema. Aquí está mi árbol revisado:

//= require jquery_ujs 
//= require jquery 
//= require twitter/bootstrap 
//= require jquery.placeholder 
//= require_tree . 
+1

¿Alguna idea de por qué esto funciona? – tibbon

+0

¡esto resolvió mi problema también! – kibaekr

0

Después de un largo tiempo dedicado, esto resolvió mi problema con el error.

Asegúrate de que Jquery se cargue solo una vez.

Incluir gem 'jquery-rails' en Gemfile y hacer $ bundle install

Asegúrese de incluir estos en app/assets/javascripts/application.js archivo.

//= require jquery 
//= require jquery_ujs 

La sintaxis al mal como // require jquery lleva a no cargar jQuery.

Si todo está incluido correctamente, el origen de la página de su archivo html debe mostrar todos los archivos fuente incluidos.

Para mí, tuve un problema porque estaba cargando explícitamente las fuentes del complemento jquery de google en application.html.erb en app/views/layouts además de requerirlo en el archivo application.js en app/assets/javascript. Esto hizo que jquery se definiera nuevamente y aparecieron pocos errores como placeholder() no definido, oApi no definido para null.

4

En mi caso, el problema se debió a la carga asíncrona del archivo javascript.

<%= javascript_include_tag "application", :async => true %> 

conmutación de nuevo a

<%= javascript_include_tag "application" %> 

resolvió el problema.

+0

Esto también lo solucionó para mí. Sin embargo, me gustaría aprovechar async, ¿alguna idea de por qué estaba causando problemas? – Marklar

Cuestiones relacionadas