中间人的Javascript无法正常工作

时间:2014-01-01 23:37:45

标签: ruby twitter-bootstrap middleman

我的bootstrap javascript似乎不起作用。然而,他们的样式表工作正常,源和构建都不加载javascript(例如navbar-collapse)

config.rb

set :css_dir, 'stylesheets'

set :js_dir, 'javascripts'

set :images_dir, 'images'

layout.rb

<!doctype html>
<html>
  <head>
    <meta charset="utf-8">

    <!-- Always force latest IE rendering engine or request Chrome Frame -->
    <meta content="IE=edge,chrome=1" http-equiv="X-UA-Compatible">

    <!-- Use title if it's in the page YAML frontmatter -->
    <title><%= current_page.data.title || "The Middleman" %></title>

    <%= stylesheet_link_tag "bootstrap", "custom", "font-awesome" %>
    <%= javascript_include_tag  "bootstrap", "custom" %>
  </head>

  <body>
    <%= partial "/partials/navbar" %>
    <%= yield %>
    <%= partial "/partials/footer" %>
  </body>
</html>

泛音/ _navbar.html.erb

<nav class="navbar navbar-default navbar-fixed-top" role="navigation">
    <div class="container">
      <div class="navbar-header">
        <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
          <span class="sr-only">Toggle navigation</span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
          <span class="icon-bar"></span>
        </button>
        <a class="navbar-brand" style="font-size:25px;color:#2ecc71" href="index.html"><i class="fa fa-play-circle-o fa-md"></i>Brand</a>
      </div>


      <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
        <ul class="nav navbar-nav navbar-right">
          <li><a href="#">About</a></li> 
          <li><a href="#">Faq</a></li> 
        </ul>
      </div>

    </div>
  </nav>

的Gemfile

# If you have OpenSSL installed, we recommend updating
# the following line to use "https"
source 'http://rubygems.org'

gem "middleman", "~>3.2.1"

# Live-reloading plugin
gem "middleman-livereload", "~> 3.1.0"

gem "middleman-gh-pages"

我使用过Twitter bootstrap CSS和JS,导航上的data-toggle="collapse"不会在移动设备上崩溃。

2 个答案:

答案 0 :(得分:3)

你仍然没有完全解释“不工作”的意思,但我的猜测是你得到了bootstrap.js的404。问题是Sitemap不知道它应该为Bootstrap资源生成一个文件 - 您打算使用Sprockets的require语法将它们包含在您自己的文件中。如果您不想这样做,可以使用import_asset,如the Middleman Asset Pipeline docs中所述:

ready do
  sprockets.import_asset 'bootstrap.js'
end

答案 1 :(得分:1)

(您的问题与ruby-on-rails无关,您应该删除此标记。)

正确加载Bootstrap JavaScript和CSS资产时,您的HTML标记工作正常:http://codepen.io/riddla/full/GgtJc

也许你错过了所需的jQuery资产?见http://getbootstrap.com/javascript/#js-overview

  

插件依赖

     

某些插件和CSS组件依赖于其他插件。如果单独包含插件,请确保在文档中检查这些依赖项。另请注意,所有插件都依赖于 jQuery (这意味着必须在插件文件之前包含jQuery)。