我创建了一个简单的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的功能将无法正常工作.
假设添加后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
即使你已经正确设置了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