为什么dropdown-toggle(bootstrap)在heroku上不起作用?

时间:2013-12-09 06:51:54

标签: ruby-on-rails twitter-bootstrap heroku

我不明白为什么我视图中的以下代码(标题栏)在heroku上不起作用。

它似乎在我的本地服务器上的开发和生产上都能正常工作。一旦我推送到heroku,生成的HTML也很好。所有其他bootstrap元素似乎都有效。但是,此下拉链接似乎不起作用

    <% if current_user.present? %>


                <div id = "account" class=" dropdown">

                        <a href='#' class="dropdown-toggle" data-toggle="dropdown">
                            <span>Account</span> <b class="caret"></b>
                        </a>
                        <ul class="dropdown-menu pull-right">
                            <li><%= link_to "Profile", current_user %></li>
                            <li><%= link_to "Settings", edit_user_path(current_user) %></li>
                            <li class="divider"></li>
                            <li>
                                <%= link_to "Sign out", signout_path, method: "delete" %>
                            </li>
                        </ul>

                </div>
                <% end %>

生成的HTML:

                <div id = "account" class=" dropdown">

                        <a href='#' class="dropdown-toggle" data-toggle="dropdown">
                            <span>Account</span> <b class="caret"></b>
                        </a>
                        <ul class="dropdown-menu pull-right">
                            <li><a href="/users/1">Profile</a></li>
                            <li><a href="/users/1/edit">Settings</a></li>
                            <li class="divider"></li>
                            <li>
                                <a href="/signout" data-method="delete" rel="nofollow">Sign out</a>
                            </li>
                        </ul>

                </div>

                </div>

我的app / assets / stylesheets / application.css

 * = require custom

我的app / assets / stylesheets / custom.css.scss

@import "bootstrap";

我对heroku很新。所以我不知道如何调试这样的错误。如何解决我如何调试这样的错误?

4 个答案:

答案 0 :(得分:2)

rails中的一些奇怪的错误:我的application.js最初是:

//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require bootstrap

我不得不重新排序并在jquery之前移动bootstrap

修改了application.js

//= require bootstrap
//= require jquery
//= require jquery_ujs
//= require jquery-ui

然后我不得不跑

heroku run rake assets:reset
heroku run rake assets:precompile

现在可行了

答案 1 :(得分:1)

好吧,我遇到了同样的问题。下拉列表适用于本地但不适用于Heroku。

我曾尝试重新排序// = jquery和// = bootstrap并一次又一次地重新排序。我还运行了资产预编译方法。但是,在我的情况下,它仍然无法发挥作用。

然后我比较了我之前写过的一个应用程序,我发现&#39; bootstrap&#39;之间可能存在冲突。和&#39; bootstrap-spockets&#39;。如果删除了其中任何一个,则下拉菜单有效。所以我删除了#bootstrap&#39;最后。我不确定它是否会引起任何进一步的问题,但到目前为止还不错。

答案 2 :(得分:0)

确保预编译资产

heroku run rake assets:precompile

答案 3 :(得分:0)

您可以将文件添加到您的文件application.js:

//= require bootstrap/dropdown

因此,您的文件将是:

//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require bootstrap
//= require bootstrap/dropdown