【问题标题】:Bootstrap NavBar deployed in rails app looks broken部署在 Rails 应用程序中的 Bootstrap NavBar 看起来坏了
【发布时间】:2017-09-29 23:30:52
【问题描述】:

我正在尝试构建我的第一个 Rails Web 应用程序,但我被困在需要将导航栏的 Bootstrap 代码嵌入到我的应用程序中 我从一个 NavBar(下面的代码)开始。它出现在我的主页上,但看起来坏了。我会附上这个问题的图片。感谢您的帮助!

在 ~/views/layouts/application.html.erb 文件中:

<nav class="navbar navbar-expand-lg navbar-light bg-light">
  <a class="navbar-brand" href="#">Navbar</a>
  <button class="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarNav" 
  aria-controls="navbarNav" aria-expanded="false" aria-label="Toggle navigation">
    <span class="navbar-toggler-icon"></span>
  </button>
  <div class="collapse navbar-collapse" id="navbarNav">
    <ul class="navbar-nav">
      <li class="nav-item active">
        <a class="nav-link" href="#">Home <span class="sr-only">(current)</span></a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Features</a>
      </li>
      <li class="nav-item">
        <a class="nav-link" href="#">Pricing</a>
      </li>
      <li class="nav-item">
        <a class="nav-link disabled" href="#">Disabled</a>
      </li>
    </ul>
  </div>
</nav>

在 ~/application.css.scss 文件中:

@import "bootstrap-sprockets";
@import "bootstrap";

在 gemfile 中:

gem 'bootstrap-sass', '3.3.6'
gem 'sass-rails', ' 3.2'

在 ~/application.js 中:

//= require jquery
//= require bootstrap-sprockets

然后我运行命令 bundle install,我得到了这个丑陋的输出:

Bundler could not find compatible versions for gem "sass":
  In Gemfile:
    bootstrap-sass (= 3.3.6) was resolved to 3.3.6, which depends on
      sass (>= 3.3.4)

    sass-rails (= 3.2) was resolved to 3.2.0, which depends on
      sass (~> 3.1.10)

我尝试用我在开发中非常有限的知识来解决它,但我做不到。我正在 Cloud9 平台上学习 Ruby on Rails。 有人可以帮忙吗?提前谢谢你。

宝石文件:

source 'https://rubygems.org'


# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '5.1.4'
# Use sqlite3 as the database for Active Record
gem 'sqlite3', group: [:development, :test]
#Use Bootstrap library for styling.

#Use postgresql as the db for production
group :production do
    gem 'pg'
    gem 'rails_12factor'
end
# Use SCSS for stylesheets


# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '1.3.0'
# Use CoffeeScript for .js.coffee assets and views
gem 'coffee-rails', '4.0.0'
# See https://github.com/sstephenson/execjs#readme for more supported runtimes
# gem 'therubyracer',  platforms: :ruby
gem 'bootstrap-sass', '~> 3.2.0'
gem 'sass-rails', '~> 5.0'
# Use jquery as the JavaScript library
gem 'jquery-rails'
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
gem 'turbolinks'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '0.4.0',          group: :doc

# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring',        group: :development

# Use ActiveModel has_secure_password
# gem 'bcrypt', '3.1.7'

# Use unicorn as the app server
# gem 'unicorn'

# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development

# Use debugger# gem 'debugger', group: [:development, :test]

【问题讨论】:

  • 这个网站让我很难发布我的问题。我只发布了 2 张图片,因为它允许我这样做。剩下的就是代码了。
  • @jvillian 现在似乎让我发布代码!对不起,我是这个网站的新手,这是我的第一个活动!
  • 您有什么理由将这些宝石限制在特定版本中吗?那是一个非常旧的sass-rails 版本。为什么不使用~&gt; 指令来使用更宽松的版本规范?
  • 我没有理由。我只是自学一门课程,只是按照说明进行操作。考虑到这门课程也有些陈旧,我会做任何可以解决此问题的事情。你有什么建议?
  • 我使用gem 'sass-rails', '~&gt; 5.0'gem 'bootstrap-sass', '~&gt; 3.2.0'

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


【解决方案1】:

您可以在很多地方指定特定版本的 gem。喜欢:

gem 'uglifier', '1.3.0'
gem 'coffee-rails', '4.0.0'
gem 'jbuilder', '2.0'

那些应该更像:

gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0'

等等。特定版本的命名是导致您的 gem 兼容性问题的原因。

【讨论】:

    【解决方案2】:

    @moe 如果你用谷歌搜索Bundler could not find compatible versions for gem "sass":,第一个结果可能会回答你的问题: Bundler could not find compatible versions for gem "sass"

    归根结底,您正在锁定 gems 版本,试试这个并开心:

    gem 'bootstrap-sass', '3.3.6' gem 'sass-rails', '~> 3.2' 这是~&gt;What does ~> mean in a gem file的参考

    【讨论】:

      【解决方案3】:

      谢谢大家,我非常感谢您给我的时间和精力。 所以,我今天来上班,卡了将近5个小时的问题,今天10分钟就解决了! 我不确定到底是什么修复了它,但我使用了你们的意见,我做了以下事情:

      1- 我 'ctrl+x'ed 了 Gemfile 的所有内容,保存并运行:

      bundle install
      

      然后我将内容粘贴回去,然后再次运行bundle install。 我收到了这个错误:

      Could not find gem 'sass-rails (~> 3.5.1)' in any of the gem sources listed in your Gemfile.
      

      2- 我运行了以下命令:

      gem install rails
      

      3-

      gem install railties
      

      4- 我在 Gemfile 中添加了 gem 'railties', '4.1.0'

      5- 然后bundle install 它接受了命令。在某些时候,gemfile.lock 被创建(我之前删除了它,当我试图解决他的问题时)。

      如您所见,我不知道自己在做什么,也不知道是什么解决了这个问题,但现在它正在工作,我可以在我的网页上看到引导元素。 谢谢 萌

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-06-28
        • 2023-04-11
        • 1970-01-01
        • 1970-01-01
        • 2015-10-20
        • 2011-09-09
        • 1970-01-01
        相关资源
        最近更新 更多