Jquery 资产预编译后,Twitter引导下拉列表中断

Jquery 资产预编译后,Twitter引导下拉列表中断,jquery,ruby-on-rails,ruby-on-rails-3,twitter-bootstrap,activeadmin,Jquery,Ruby On Rails,Ruby On Rails 3,Twitter Bootstrap,Activeadmin,在RAILS\u ENV=production bundle exec rake assets:precompile之后,在开发环境中会变得无响应。单击按钮时不会发生任何事情。但是,从公共/资产中删除所有内容开始工作。它在生产模式下也能完美工作(rails s-e生产) 应用程序使用和。看起来有点不对劲 注意,在Heroku上登台时,它可以很好地工作 下面是生成的html的快照 <li id="organization-selector" class="dropdown">

RAILS\u ENV=production bundle exec rake assets:precompile
之后,在开发环境中会变得无响应。单击按钮时不会发生任何事情。但是,从
公共/资产中删除所有内容开始工作。它在生产模式下也能完美工作(
rails s-e生产

应用程序使用和。看起来有点不对劲

注意,在Heroku上登台时,它可以很好地工作

下面是生成的html的快照

<li id="organization-selector" class="dropdown">
    <a href="/" data-toggle="dropdown" data-target="#organization-selector" class="dropdown-toggle">
      RedKivi
      <b class="caret"></b>
    </a>
    <ul class="dropdown-menu">
      <li>
        <a href="/organizations/1">RedKivi</a>
      </li>
      <li>
        <a href="/organizations/2">BoTree</a>
      </li>                  
      <li class="divider"></li>
      <li>
        <a href="/organizations/new">New organization</a>
      </li>
    </ul>
</li>
app/assets/javascripts/application.js

...
....
 *= require_self
 *= require jquery.ui.slider
 *= require_tree .
//= require jquery
//= require jquery_ujs
//= require jquery.ui.slider
//= require bootstrap
//= require_tree .

预编译资产的实践是什么?

据我所知,通常不需要在本地预编译资产。这通常是在舞台和生产中完成的

实际上,在Heroku上登台时,我们得到了
ActionView::Template::Error(active_admin.css未预编译)
。因此,我们在本地预编译资产,在部署到Heroku之前将其推送到远程repo进行修复。这就是解决方法和问题的原因


给出了解决方案。我们遵循了它,现在不再需要在本地预编译资产并保留回购。

只需清理资产文件夹:

rake assets:clean:all

为什么会发生这种情况?

Bootstrap的下拉列表在开发时中断,只是因为您的资产被加载了两次。一次是“预编译”形式,第二次是因为您的开发环境。这会导致冲突,下拉列表不再起作用


这就是为什么它在Heroku/Production上正常工作的原因,因为只有预编译的资产被加载。

工作起来很有魅力!非常感谢。