6

下拉列表RAILS_ENV=production bundle exec rake assets:precompile在开发环境中变得无响应之后。单击按钮时没有任何反应。但是,从开始工作中删除所有内容。它在生产模式下也能完美运行 ( )public/assetsrails s -e production

该应用程序使用twitter bootstrapactive admin。看起来有些冲突

请注意,它在 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>

应用程序/资产/样式表/application.css.scss

...
....
 *= require_self
 *= require jquery.ui.slider
 *= require_tree .

应用程序/资产/javascripts/application.js

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

预编译资产的做法是什么?

4

2 回答 2

3

只需清理您的资产文件夹:

rake assets:clean:all

为什么会这样?

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

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

于 2013-12-07T23:23:07.257 回答
0

据我所知,通常您不需要在本地预编译资产。它通常在分期和生产中完成。

实际上,在 Heroku 上登台时,我们得到了ActionView::Template::Error (active_admin.css isn't precompiled) error。所以我们在本地预编译资产,在部署到 Heroku 之前推送到远程仓库来修复它。这是解决方法和问题的原因。

这个链接给出了解决方案。我们已经遵循它,现在我们不再需要在本地预编译资产并保留在 repo 中。

于 2012-09-21T11:53:07.733 回答