unreadable rails not found bootstrap javascript ruby-on-rails ruby-on-rails-4 twitter-bootstrap-3 travis-ci

javascript - not - sprockets-rails



Error con las pruebas habilitadas con JavaScript(Bootstrap 3, Rails 4, Travis CI) (2)

Tengo un extraño error que aparece solo en el entorno de CI. Este error no aparece en desarrollo, producción o incluso en entornos de pruebas locales.

ActionController::RoutingError: No route matches [GET] "/fonts/bootstrap/glyphicons-halflings-regular.svg"

El rastro completo se puede encontrar aquí

En los entornos de desarrollo y producción, el requisito de éxito va a /assets/bootstrap/glyphicons-halflings-regular.woff . Hay una diferencia en /fonts/ - /assets y svg - woff part. Todos los errores generados por las pruebas habilitadas con JavaScript (controlador Poltergeist / PhantomJS). Las pruebas regulares de Capibara son todas verdes. Chrome devtools dice que la solicitud de archivo de fuente la generan jquery.js, no la página o el archivo css.


Si tiene una configuración similar a la nuestra, instaló Bootstrap manualmente en Rails y tuvo que hacer algunas modificaciones manuales del estilo de CSS para apuntar las fuentes Glyphicon a la ruta correcta. (/ assets / botostrap ... en lugar de / fonts / bootstrap ...). Sin embargo, los estilos originales todavía están presentes en bootstrap.css, y aunque están anulados, parece que PhantomJS todavía está detectando y haciendo uso de esos originales.

En nuestro caso, tuvimos que buscar todas las referencias a glyphicons-halflings en bootstrap.css y cambiar la ruta a la correcta. Después de hacerlo, los errores de enrutamiento desaparecen.

¡Buena suerte!


Esto está relacionado con la gema bootstrap-sass . Estoy usando la versión 3.3.4.1 con Rails 4.2.

Mi problema de presentación fue muy similar pero ligeramente diferente: el mismo error en CI con 404 para /fonts/bootstrap/glyphicons-halflings-regular.woff pero una ruta diferente en dev, /fonts/glyphicons...

La solución que funcionó para mí fue agregar la siguiente línea antes de incluir el bootstrap JS con SASS:

$icon-font-path: "bootstrap/"; @import ''bootstrap'';

Mi mejor pista vino de los comentarios sobre este tema en el rastreador de gemas: https://github.com/twbs/bootstrap-sass/issues/480#issuecomment-49237119