windows - rails - activos de rake: la precompilación no funciona(rieles 3.1.1)
run migrations heroku rails (7)
Me estoy desplegando en heroku pero vi que los archivos css no se están publicando (tampoco se pueden encontrar en heroku).
Leí que necesito hacer activos de rake: precompilo localmente al principio, pero cuando lo hago obtengo:
C:/project>bundle exec rake assets:precompile --trace
** Invoke assets:precompile (first_time)
** Execute assets:precompile
rake aborted!
undefined: Unexpected token: operator (<)
(in C:/project/app/assets/javascripts/application.js)
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
No tengo nada en application.js, así que no entiendo dónde está el error.
application.js es
// This is a manifest file that''ll be compiled into including all the files listed below.
// Add new JavaScript/Coffee code in separate files in this directory and they''ll automatically
// be included in the compiled file accessible from http://example.com/assets/application.js
// It''s not advisable to add code directly here, but if you do, it''ll appear at the bottom of the
// the compiled file.
//
//= require jquery
//= require jquery_ujs
//= require_tree .
Gracias
Actualizar
Si elimino un archivo .js.erb recibo el siguiente error
C:/project>bundle exec rake assets:precompile RAILS_ENV=production --trace
** Invoke assets:precompile (first_time)
** Execute assets:precompile
rake aborted!
706: unexpected token at ''C:/Users/me/AppData/Local/Temp/execjs20111021-6448-ei2nm3.js(2, 3) Microsoft JScript runtime error: Out of memory
''
(in C:/project/app/assets/javascripts/application.js)
Tasks: TOP => assets:precompile
(See full trace by running task with --trace)
Todavía tiene problemas con los archivos erb css y js que no compilan ...
Esto no parece terminar ... Gracias
¡Tengo el mismo problema aquí! En mi caso, lo que causa este problema es que agregué un nuevo archivo JS a la carpeta javascript y recibí un error undefined: Unexpected token: operator (<)
mientras trataba de ejecutar el comando precompilar. Así que busco en el nuevo archivo js y encontré que hay un comentario de estilo HTML <!-- -->
en ese archivo. Lo elimino y la vida es buena ahora!
Intente averiguar si hay algún comentario de estilo HTML <!-- -->
en su archivo js y simplemente elimine esos comentarios. ¡Esto es especialmente cierto cuando se copia un código JS del archivo html!
Creo que es causado por un archivo javascript externo que no está bien formateado con código. p.ej
function say_hi(){
// NOTICE that there''s no semi-colon there!
name = "Jim"
alert("hi" + name )
}
cuando esté bajo la precompilación, su código se colocará en 1 línea, y como no hay punto y coma necesario, su archivo js generado probablemente contenga errores, como
"undefined: Unexpected token: operator (<)"
o algo.
entonces, mi sugerencia es:
no comprima el archivo js si no está bien formateado en el código, configurando "config.assets.compress = false" en su archivo de configuración, siguiendo la respuesta de @ Mike.
utilice coffeescript como sea posible, le ayudará a generar código muy bien formateado. (No soy un gurú de coffeescript, así que por favor corrígeme si estoy equivocado)
Estaba teniendo el mismo problema y resultó ser causado por la inclusión de un JavaScript insertado que tenía comentarios en el formato: <!-- comment -->
Los eliminé y funcionó como un amuleto. Espero que esto ayude.
He estado luchando con esto al intentar implementarlo en un servidor de transición. La solución que funciona para mí es asegurarse de tener lo siguiente en su archivo config/environments/[your_environment].rb
:
config.assets.compress = false
Por defecto, los compresores no están disponibles en un entorno que no sea de producción, por lo que la precompilación estaba fallando.
He pasado la última 1 hora rascándome la cabeza después de encontrar el mismo error. El problema es la siguiente línea en su application.js:
//= require_tree .
Esto hace que todos los archivos en su app/assets/javascripts/
directory sean incluidos y podría ser que haya algún tipo de error en otro archivo en el directorio. Eliminé esa línea y obtuve mis activos para precompilar (no estaba realmente usando application.js). Por lo tanto, busque un error en un archivo que está siendo incluido por application.js
Tuve un problema similar:
Token inesperado: operador (<<)
Esto resultó ser un archivo sobrante de un conflicto de fusión en Git. El conflicto deja un archivo .orig que contiene "<<<<<<<<<<" donde Git encuentra un bloque de código para fusionar.
Debido a la directiva de canalización de activos
// = require_tree.
en application.js , todos los archivos de la carpeta javascript (incluidos los archivos .orig) se precompilan en un impulso a servidores como Heroku. El precompilador encuentra un error con "<<<<<".
Así que mi solución fue encontrar todos los archivos .orig y eliminarlos de Git, usando el método ''git rm filename''.
Una cosa que noté es que debería ser:
RAILS_ENV=production bundle exec rake assets:precompile
la definición de RAILS_ENV debe ir antes que el comando bundle
, porque está configurando la variable de entorno shell (bash) para el shell que ejecuta el comando bundle
.
Tus problemas parecen estar relacionados con esto:
https://github.com/bradphelan/jasminerice/issues/21
Ver también: