我关注RailsTutorial sample_app,我们使用twitter-boostrap框架。有一个下拉菜单(the code, jQuery)在开发环境中无法正常使用,但在生产中运行良好(在Heroku上)。
在“视觉事件”的帮助下,我确认有一个与菜单标题相关的事件。正常行为应该是单击以更改类:
<li id="fat-menu" class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
为:
<li id="fat-menu" class="dropdown open">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
尽管如此,在我的情况下,点击它会添加“打开”并在同一时刻删除。我几乎没有注意到它会进行更改,但会很快返回到初始状态,因此下拉菜单无法打开。
如果我在浏览器中手动编辑代码并在课程中添加“打开”,则会打开菜单。如果我然后单击菜单标题,它会暂时“打开”,然后再次返回(与第一个案例相反)。
我很困惑它在生产中有效,但在开发中却没有(在同一浏览器上)。我该怎么检查?
谢谢!
Vasil //第一个问题
答案 0 :(得分:35)
如果要加载 bootstrap-dropdown.js 的代码两次,就会出现这种情况。检查以确保您没有同时加载 bootstrap-dropdown.js 和 bootstrap.js 。后者包括前者。
如果您从资源面板中删除 bootstrap-dropdown.js ,并重新运行它,它将会有效。
答案 1 :(得分:3)
(Rails 3.2)我通过删除本地预编译资产解决了这个问题 - 它可以在Heroku / Prod中正常工作,但会在开发中立即打开和关闭。
rake assets:clean
答案 2 :(得分:2)
我遇到了同样的问题,结果发现bootstrap dropdown被加载了两次。 +1修复此问题!
我们全局加载bootstrap-dropdown.js,因为我们在每个页面上都使用它。我们的一个开发人员将bootstrap.js作为依赖项加载到一个小部件中。结果是除了一个页面之外,我们的每个页面的下降都有效。追踪有点困难,如果不知道最近页面上发生了什么变化,那就更难以弄明白了。
答案 3 :(得分:2)
从bootstrap -v 2.1更新到2.3解决了我的问题。
答案 4 :(得分:2)
我遇到了几乎相同的问题。但是导致在一个HTML页面中同时加载bootstrap和bootstrap.min js文件作为bundle(ASP.NET MVC项目)。删除其中一个就解决了。
答案 5 :(得分:0)
我遇到了同样的问题。但所有这一切都是因为我错过了一些结束HTML元素。
答案 6 :(得分:0)
我遇到了同样的问题。我了解到预编译资产用于开发和生产。我在生产环境中测试缓存,当我切换回开发时,下拉菜单停止工作。
在切换回生产开发时,请务必清理已编译的资产。
答案 7 :(得分:0)
这些解决方案都不适合我。生产模式导致此问题。我通过大量的反复试验发现,config.assets.debug = false导致我没有看到我的gem文件设置有问题。当我把它设置为true时,我得到的错误指出了我的&#39; bootstrap-sass&#39;宝石在我的资产组内部,不应该是。
所以对于那些遇到过这个问题的人并且已经完成了这个评论,请尝试在生产环境中设置config.assets.debug = true,看看它是否至少会让你指向正确的方向