Bootstrap Carousel 没有作为 Rails 应用程序的一部分移动

Posted

技术标签:

【中文标题】Bootstrap Carousel 没有作为 Rails 应用程序的一部分移动【英文标题】:Bootstrap Carousel not moving as part of a Rails App 【发布时间】:2018-02-16 15:35:54 【问题描述】:

我想在我的 Rails 应用程序中使用 Bootstrap 轮播。 JQuery、Bootstrap 和 JS 都已加载并设置了工作数据库。所以我想知道我的轮播代码是否有错误。第一张图片显示,但没有改变,点击箭头不会移动到下一张。

<div id="carousel-example-generic" class="carousel slide" data-ride="carousel">
  <!-- Indicators -->
  <ol class="carousel-indicators">
    <li data-target="#carousel-example-generic" data-slide-to="0" class="active"></li>
    <li data-target="#carousel-example-generic" data-slide-to="1"></li>
    <li data-target="#carousel-example-generic" data-slide-to="2"></li>
  </ol>

  <!-- Wrapper for slides -->
  <div class="carousel-inner" role="listbox">
    <% @products.each do |product| %>
	    <div class="item<%= " active" if product == @products.first %>">
	      <%= image_tag(product.image_url) %>
	      <div class="carousel-caption">
	        <%= product.name %>
	      </div>
	    </div>
	  <% end %>
	  ...
  </div>

  <!-- Controls -->
  <a class="left carousel-control" href="#carousel-example-generic" role="button" data-slide="prev">
    <span class="glyphicon glyphicon-chevron-left" aria-hidden="true"></span>
    <span class="sr-only">Previous</span>
  </a>
  <a class="right carousel-control" href="#carousel-example-generic" role="button" data-slide="next">
    <span class="glyphicon glyphicon-chevron-right" aria-hidden="true"></span>
    <span class="sr-only">Next</span>
  </a>
</div>

【问题讨论】:

您是否尝试在加载引导文件后将引导轮播初始化程序包含在 $(document).on('turbolinks:load', function() ... 中? 【参考方案1】:

你的 JS 没有加载,为什么它不工作

确保在 application.js 中包含 bootstrap js 或仅将其包含在布局中

<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>

【讨论】:

【参考方案2】:

好的,只是为了确保这是我加载引导程序的地方,到目前为止它没有引起任何问题,但到目前为止我只将它用于导航栏。

<head>
    <title>Rails1</title>
    <%= csrf_meta_tags %>

    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css">
    <%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %>

    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
    <script scr="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js">
    </script>
    <meta name="viewport" content="width=device-width, initial-scale=1">

  
  </head>

【讨论】:

【参考方案3】:

没有什么是必然的错误,但我之前使用的有效方法采用了稍微不同的方法,如下所示:

<% @products.each_with_index do |product, index| %>
    <div class="item <%= 'active' if index == 0 %>">
      <%= image_tag(product.image_url) %>
      <div class="carousel-caption">
        <%= product.name %>
      </div>
    </div>
<% end %>

另外,您是否仔细检查过是否加载了 Bootstrap JS 文件?

编辑:基于 JS 仍然无法运行的事实,我认为资产管道正确加载 JS 资产可能存在问题。虽然您可以通过 CDN 包含引导程序,但我建议您将:gem 'bootstrap-sass' 添加到您的 gem 文件和 bundle install。这将通过 Gem 添加引导程序(它更像是一种 Rails 方法),然后您将进入您的 application.js 文件并更新加载顺序,使其看起来像这样(假设您有 jquery_ujs):

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

【讨论】:

刚刚发布了我加载 Bootstrap 的地方,只是为了确定。你的代码对我更有效,现在甚至没有显示第一个产品的图像。

以上是关于Bootstrap Carousel 没有作为 Rails 应用程序的一部分移动的主要内容,如果未能解决你的问题,请参考以下文章

Bootstrap 5 Carousel 模式

bootstrap之carousel轮播图自定义分页器

Bootstrap Carousel 和我正在构建的主题的问题

将 Bootstrap4 Carousel-item 一分为二

Bootstrap Carousel 删除项目和指标问题

Bootstrap Carousel - 图像更改时整个网站跳转