rails和bootstrap:未捕获的ReferenceError:未定义jQuery

我创建了一个简单的webapp,在rails 3.2.17应用程序中集成bootstrap 3,遵循stackoverflow上的这个过程,所以不使用gem而是手动复制相关app目录中的bootstrap文件。

即使我有,在我的gem文件中:

gem 'jquery-rails' 

我仍然可以看到,使用chrome检查我的网页,错误:

 Uncaught ReferenceError: jQuery is not defined 

我的页面是公共目录中的“普通”html页面。 也许它不会“inheritance”所有资产的东西? 代码是这样的:


 
 
 
      Bootsrap Test 01 
     
      
 

 ...

我还没有尝试,但我想基于JavaScript的function将无法正常工作。

假设在添加gem 'jquery-rails' ,您已经运行了bundle install命令。

确保您在app/assets/javascripts/application.js有以下内容

 //= require jquery //= require jquery_ujs //= require bootstrap.min // Add it after jquery and jquery_ujs 

编辑

在包含/bootstrap.min.js之前,您需要显式包含jQuery。 例如 :

    Bootsrap Test 01      

即使你正确设置了jquery,你仍然可以在初始化jQuery之前引发内联javascript代码时看到这个问题。

你可以包装你的javascript代码

 document.addEventListener("DOMContentLoaded", function(event) { //do work with $ }); 

或重构您的代码不使用内联JavaScript 🙂

在rails 5.0.1的’application.js’上默认是

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

改为

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

*在bootstrap之前加载第一个jquery

另一个要检查的地方是application.html.erb文件的

确保在Bootstrap javascript之前加载jQuery。

我在控制台中遇到了相同的错误消息。

只需确保jQuery在“assets / javascripts / application.js”文件中高于Bootstrap

解:

 //= require jquery //= require jquery_ujs //= require jquery-ui //= require bootstrap