我不明白为什么我视图中的以下代码(标题栏)在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很新。所以我不知道如何调试这样的错误。如何解决我如何调试这样的错误?
答案 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