2012-06-08 12 views
6

Después de implementar una aplicación de Rails en Heroku, no funciona ninguna función de JavaScript.¿Por qué javascript no funciona en la implementación de heroku?

Los archivos parecen haber sido compilado (aunque no es fácil de ver en el archivo miniaturizada).

¿Qué es un proceso lógico de pasos para averiguar porqué el código JavaScript no está funcionando (que funciona bien en la producción).

Gracias

+0

¿Qué versión de rieles y qué heroku pila? si está utilizando raíles 3.1+ creo que debería estar en la pila de cedro heroku – Dty

+0

Hola Dty. Estoy usando Rails 3.2 en Cedar con el Postgres 9 beta –

Respuesta

3

A veces tienen problemas a causa de la tubería de activos y mi falta de comprensión de la misma. Así que lo que hago sólo para asegurarse de que todo se están envasados ​​correctamente se acaba de poner en una simple alerta cuando se carga la página (la pusieron en alguna página al azar los usuarios no pueden llegar, etc.)

alert('some-unique-string') 

Empuje la codificar hasta el servidor. Luego, en Chrome, abre la página y usa las herramientas de desarrollo, ve a la pestaña "scripts". Desde allí puede buscar la cadena some-unique-string ya que la cadena literal no se miniaturizará. Si no ve eso, entonces sabrá que su javascript no está incluido por alguna razón.

Eso al menos le dará un punto de partida.

+0

dty, el js definitivamente se está compilando, y 'alert ('some-unique-string')' está presente en el código fuente. Pero no está funcionando. ¿Por qué sería esto? –

+0

incidentemente, si defino una función js en el archivo de vista, funciona. e, g,

+0

bien, creo que esto se debe a 2 números. Primero, el orden de los scripts en application.js estaba generando un error que no había recogido en el entorno de desarrollo. En segundo lugar, tengo un script que no quiero incluir en el manifiesto. Lo estoy usando en una página específica, y debe ir al final de la página. Actualmente tengo este archivo en el proveedor/activos, y al usar javascript_include_tag en la implementación recibo un error de plantilla, js no precompilado. ¿Dónde debe ubicarse este archivo y cómo debo llamarlo? –

6

Este problema se asocia con la tubería de activos. Debe compilar activos.

para resolverlo, Encienda config.assets.compress en true en config/ambientes/production.rb,

es decir

config.assets.compress = true 

A continuación, ejecute RAILS_ENV=production bundle exec rake assets:precompile .

Empuje el código de nuevo.

+0

gracias Shamith. Ya tengo 'assets.compress = true' en mis configuraciones. Heroku parece estar precompilando en el despliegue. Al menos, hay un mensaje de registro a tal efecto. Sin embargo, probaré su sugerencia de 'paquete ejecutivo' y veré cómo funciona. –

+0

gracias shamith, pero esto ni parecen funcionar –

+0

remitirla http://stackoverflow.com/questions/7294479/assets-pipeline-when-updating-to-rails-3-1-on-heroku –

Cuestiones relacionadas