当前位置:  开发笔记 > 编程语言 > 正文

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

如何解决《rails和bootstrap:未捕获的ReferenceError:未定义jQuery》经验,为你挑选了3个好方法。

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

即使我有,在我的宝石文件中:

gem 'jquery-rails'

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

Uncaught ReferenceError: jQuery is not defined 

我的页面是公共目录中的"普通"html页面.也许它不会"继承"所有资产的东西?代码是这样的:





    Bootsrap Test 01
    
    


...

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



1> Kirti Thorat..:

假设添加后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

编辑

在包含之前,您需要明确包含jQuery /bootstrap.min.js.例如 :




    Bootsrap Test 01
    
    
    
    


好吧,它完全像你说的那样工作.1)请考虑我将href和src更新为以/开头,否则它只能在根文件夹中工作.因此,如果您愿意,可以在答案中进行相同的更新.2)也许值得一提的是jquery和jquery_ujs必须在*bootstrap之前*.新手说.

2> Serge Selets..:

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

你可以包装你的javascript代码

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

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



3> mpalencia..:

在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

推荐阅读
可爱的天使keven_464
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有