twitter bootstrap下降突然无法正常工作

Sas*_*sha 37 ruby-on-rails twitter-bootstrap drop-down-menu

我想知道是否有人可以帮助我.我的引导下拉菜单突然停止工作.我不知道为什么.它以前工作.我没有触摸我的观点我的布局视图所以我认为问题不存在.我很确定它与我的javascript有关,但我不知道它来自哪里.

我的宝石文件是......

gem 'rails', '3.2.3'
gem 'bootstrap-sass', '2.0.1'
gem 'bcrypt-ruby', '3.0.1'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.5'
gem 'devise'
gem 'carrierwave'
gem 'rmagick'
gem 'delayed_job_active_record'
gem 'daemons'
gem 'make_voteable'
gem 'admin_data'
gem 'indextank'
Run Code Online (Sandbox Code Playgroud)

我的application.js是......

//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require bootstrap-dropdown
//= require bootstrap
//= require_tree .
Run Code Online (Sandbox Code Playgroud)

我猜也许它与我的配置文件有某种关系?

Sas*_*sha 108

不得不搬家

//= require jquery
Run Code Online (Sandbox Code Playgroud)

下面

//= require bootstrap
Run Code Online (Sandbox Code Playgroud)

application.js
Run Code Online (Sandbox Code Playgroud)

  • 这是bootstrap的错误吗?为什么引导后需要导入jquery? (6认同)

tw *_*all 21

如果预编译资产不起作用,请尝试删除预编译资产

rake assets:clean

我发现下拉js被加载到资产管道两次似乎立即打开和关闭下拉菜单,但在Heroku/Production中可以正常工作.

  • 谢谢!但这对我来说有点不同,我不得不做"耙资产:干净:全部" (4认同)
  • 这实际上是为我修复的 (2认同)

Jul*_*ann 12

我有同样的问题,我找到了两种方法来解决它.

首先,让我告诉你我的设置:我按照bootstrap网站上的说明,下载了bootstrap-dropdown.js.我把它放在资产/ javascripts中.我的application.js文件如下所示:

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require_tree .
Run Code Online (Sandbox Code Playgroud)

下拉列表不起作用.

我在页面源代码中注意到bootstrap-dropdown.js的脚本标签出现了两次:(为简洁起见我删除了不相关的东西)

<script type="text/javascript" src="/assets/jquery.js?body=1">
<script type="text/javascript" src="/assets/jquery_ujs.js?body=1">
<script type="text/javascript" src="/assets/twitter/bootstrap/bootstrap-dropdown.js?body=1">
<script type="text/javascript" src="/assets/twitter/bootstrap/bootstrap-scrollspy.js?body=1">
<script type="text/javascript" src="/assets/twitter/bootstrap.js?body=1">
<script type="text/javascript" src="/assets/bootstrap-dropdown.js?body=1">
<script type="text/javascript" src="/assets/bootstrap.js?body=1">
Run Code Online (Sandbox Code Playgroud)

所以我//= require_tree .从application.js中删除了该行,重新启动了服务器,并且下拉列表工作正常!

然后我放回线//= require_tree .,而是删除文件资产/ bootstrap-dropdown.js,并再次工作!

  • 这也有帮助.我有资源 - 在开发中预编译,然后进一步的变化以某种方式冲突.删除公共/资产下的文件救了我.我更喜欢这个,而不是在jquery之前加载bootstrap,这会在控制台中创建警告. (2认同)
  • 这也适用于我,引导后jquery并做了一个资产:清理再预编译. (2认同)