official - rieles y bootstrap: referencia no detectada Error: jQuery no está definido
jquery link (5)
Incluso si ha configurado jquery correctamente, todavía puede ver ese problema cuando se evoca el código javascript en línea antes de que se inicialice jQuery.
Puedes envolver tu código javascript en
document.addEventListener("DOMContentLoaded", function(event) {
//do work with $
});
O refactorice su código para no usar javascript en línea :)
Creé una aplicación web simple que integra bootstrap 3 en una aplicación de Rails 3.2.17, siguiendo this procedimiento encontrado en stackoverflow, así que sin usar una gema pero copiando manualmente los archivos de bootstrap en los directorios de aplicaciones relevantes.
Incluso si tengo, en mi archivo gema:
gem ''jquery-rails''
Todavía puedo ver, inspeccionando mi página web con Chrome, el error:
Uncaught ReferenceError: jQuery is not defined
Mi página es una página html "normal" en un directorio público. Tal vez no "hereda" todas las cosas de los activos? El código es así:
<!DOCTYPE html> <html> <head> <title>Bootsrap Test 01</title> <link rel="stylesheet" href="/css/bootstrap.css"> <script src="/js/bootstrap.min.js" type="text/javascript"></script> </head> ...
Todavía no lo he intentado, pero supongo que la función basada en javascript no funcionará.
Me encontré con el mismo mensaje de error en la consola.
Solo asegúrese de que jQuery esté por encima de Bootstrap en su archivo ''asset / javascripts / application.js''
Solución:
//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require bootstrap
Otro lugar para verificar es el <head>
del archivo application.html.erb
.
Asegúrese de que está cargando en jQuery antes del javascript de Bootstrap.
Suponiendo que después de agregar gem ''jquery-rails''
, ha ejecutado el comando bundle install
.
Asegúrese de tener seguimiento en app/assets/javascripts/application.js
//= require jquery
//= require jquery_ujs
//= require bootstrap.min // Add it after jquery and jquery_ujs
EDITAR
Deberá incluir explícitamente jQuery antes de incluir /bootstrap.min.js
. Por ejemplo :
<!DOCTYPE html>
<html>
<head>
<title>Bootsrap Test 01</title>
<link rel="stylesheet" href="/css/bootstrap.css">
<script src="/assets/jquery.js" type="text/javascript"></script>
<script src="/assets/jquery_ujs.js" type="text/javascript"></script>
<script src="/js/bootstrap.min.js" type="text/javascript"></script>
</head>
en ''application.js'' de rails 5.0.1 el valor predeterminado es
//= require bootstrap
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
cambiarlo a
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require_tree .
//= require bootstrap
* cargar primero jQuery antes de bootstrap