为什么我的下拉菜单在本地服务器上可以工作,但当我推到heroku时却不能

Why does my drop down-menu work on my local server but not when I push to heroku?

本文关键字:heroku 不能 工作 下拉菜单 我的 服务器 为什么      更新时间:2024-03-15

当我在本地测试我的网站时,它运行良好,但一旦我推到heroku,下拉菜单就不起作用。

我的application.js文件包含以下内容:

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

我的application.html.erb文件包含这个

<!DOCTYPE html>
<html>
<head>
    <title> <%= full_title(yield(:title)) %> </title>
    <%= stylesheet_link_tag    "application", :media => "all" %>
    <%= javascript_include_tag "application" %>
    <%= csrf_meta_tags %>
    <%= render 'layouts/shim' %>
</head>
<body>
    <%= render 'layouts/header' %>  
    <div class="container">
        <%= yield %>
    </div>
</body>
</html>

我的标题部分,也就是下拉菜单所在的位置,包含这个

<header class="navbar navbar-fixed-top">
  <div class="navbar-inner">
    <div class="container">
      <ul class="nav pull-left">
        <li>
      <%= link_to image_tag("WML_header2.png", :alt => 'Wheres My Lan'), home_path%> 
        </li>
      </ul>
      <nav>
        <ul class="nav pull-right">
            </br>
            <li><%= link_to "Heat Map",  heatMap_path %></li>
            <% if signed_in? %>
            <li><%= link_to "New Update",  new_message_path %></li>

            <li id="fat-menu" class="dropdown">
              <a href="#" class="dropdown-toggle" data-toggle="dropdown">
                View <b class="caret"></b>
              </a>
          <ul class="dropdown-menu">
            <li><%= link_to "Users", users_path %></li>
            <li><%= link_to "Reports", reports_path %></li>
            <li><%= link_to "Statistics", stats_path %></li>
          </ul>
        </li>

        <li id="fat-menu" class="dropdown">
          <a href="#" class="dropdown-toggle" data-toggle="dropdown">
            Account <b class="caret"></b>
          </a>
              <ul class="dropdown-menu">
                <li><%= link_to "Profile", current_user %></li>
                <li><%= link_to "Settings", settings_path %></li>
                <li class="divider"></li>
                <li>
                  <%= link_to "Sign out", signout_path, method: "delete" %>
                </li>
              </ul>
            </li>
          <% else %>
            <li><%= link_to "Admin sign in", signin_path %></li>
          <% end %>
          <li><%= link_to "About",  about_path %></li>
          <li><%= link_to "Contact", contact_path %></li>
        </ul>
      </nav>
    </div>
  </div>
</header>

生成的HTML是什么?Chrome的开发者工具栏是否报告了任何错误?

我猜它在某个位置期望有一个javascript文件,但它没有在那里看到它。

检查jQuery加载的顺序。jQuery"先加载",所有其他插件都会稍后加载。

您是否尝试将//=require bootstrap移动到//= require jquery之后?这解决了我类似的问题。

我也面临着类似的问题,Paolo del Mundo的建议帮助我发现了自己做错了什么。我在谷歌浏览器中查看了HTML,发现了几个错误:

  • 未能加载资源:服务器响应,状态为404(未找到)

我做了一个StackOverflow搜索这个错误,嘿,你猜怎么着?原来我忘了在config/environments/production.rb.中设置"config.assets.comfile=true"

/Picardfacepalm

我设置了它,添加/调试/推送到Git,推送到Heroku,刷新了Heroku页面——宇宙中一切都很好。