Ruby on rails bootstrap css js工作但未找到

时间:2016-04-30 13:24:11

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

我有一个rails应用程序,我添加了bootstrap gem

首先我添加了这两个宝石

gem 'bootstrap'
gem 'sprockets-rails', :require => 'sprockets/railtie'

安装了这个包

Using bootstrap 4.0.0.alpha3
Using sprockets 3.6.0

我将application.scss修改为

// Custom bootstrap variables must be set or import before bootstrap itself.
@import "bootstrap";

然后我就像这样离开了application.js

// This is a manifest file that'll be compiled into application.js, which will include all the files
// listed below.
//
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
//
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
// compiled file.
//
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
// about supported directives.
//
//= require jquery
//= require jquery_ujs
//= require turbolinks
//= require tether
//= require bootstrap-sprockets
//= require_tree .
//= require_self

最后我的application.html.erb就是这个

<!DOCTYPE html>
<html>
<head>
  <title>Squirm</title>
  <%= stylesheet_link_tag    "bootstrap"  %>
 <%= javascript_include_tag "bootstrap" %>
 <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
 <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
 <%= csrf_meta_tags %>
</head>
<body>
  <%= render 'partials/navbar' %>

  <div class="container">
    <%= yield %>
  </div>

</body>
</html>

Bootstrap似乎在我们的工作,但似乎没有找到谷歌Chrome控制台

enter image description here

2 个答案:

答案 0 :(得分:2)

你需要添加jquery以及正常的jquery捆绑在rails应用程序中,但可能是由于某些原因它不适合你的应用程序

添加 来自

的jquery
"env": {
 "jasmine": true
}

让我们知道如果这种改变有效。

答案 1 :(得分:2)

在您加载jQuery之前,您正在加载Bootstrap。 Bootstrap的许多组件都需要javascript(轮播,标签等),但是,大多数Bootstrap都可以不使用,这就是为什么Bootstrap CSS会显示在你的页面上。

在jQuery之后加载Bootstrap将解决问题:

<!DOCTYPE html>
<html>
<head>
  <title>Squirm</title>

 <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track' => true %>
 <%= javascript_include_tag 'application', 'data-turbolinks-track' => true %>
 <%= stylesheet_link_tag    "bootstrap"  %>
 <%= javascript_include_tag "bootstrap" %>
 <%= csrf_meta_tags %>
</head>
<body>
  <%= render 'partials/navbar' %>

  <div class="container">
    <%= yield %>
  </div>

</body>
</html>

此外,根据您的代码不是100%确定,但您可能会加载两次bootstrap。看来这一行://= require bootstrap-sprockets已经加载了Bootstrap。