Rails:无法找到或读取要导入的文件:"bootstrap"

15

我相对于编程还很新,所以希望我的问题不是绝对愚蠢的。

我有一个关于我的Rails应用程序的问题。

我尝试使用Bootstrap。我创建了一个名为“custom.css.scss”的文件,并在其中使用了“@import"bootstrap"”行。

问题是:每次保存我的“custom.css.scss”文件时,都会自动生成一个新文件“custom.css”,并出现以下消息:“custom.css.scss文件未找到或不可读:bootstrap”。

有趣的是:当我删除文件“custom.css.scss”并刷新浏览器时,一切正常(这意味着已使用Bootstrap)。

你有任何想法,可能是什么原因吗?

最亲切的问候 Chris

P.S.:这是我的已安装gem文件

source 'https://rubygems.org'

gem 'rails', '3.2.11'
gem 'bootstrap-sass', '2.1'
gem 'bcrypt-ruby', '3.0.1'
gem 'faker', '1.0.1'
gem 'will_paginate', '3.0.3'
gem 'bootstrap-will_paginate', '0.0.6'
gem 'jquery-rails', '2.0.2'

group :development, :test do
  gem 'sqlite3', '1.3.5'
  gem 'rspec-rails', '2.11.0'
  # gem 'guard-rspec', '1.2.1'
  # gem 'guard-spork', '1.2.0'  
  # gem 'spork', '0.9.2'
end

# Gems used only for assets and not required
# in production environments by default.
group :assets do
  gem 'sass-rails',   '3.2.5'
  gem 'coffee-rails', '3.2.2'
  gem 'uglifier', '1.2.3'
end

group :test do
  gem 'capybara', '1.1.2'
  gem 'factory_girl_rails', '4.1.0'
  gem 'cucumber-rails', '1.2.1', :require => false
  gem 'database_cleaner', '0.7.0'
  gem 'launchy', '2.1.0'
  # gem 'rb-fsevent', '0.9.1', :require => false
  # gem 'growl', '1.0.3'
end

group :production do
  gem 'pg', '0.12.2'
end

custom.css.scss文件看起来像这样

@import "bootstrap";

/* universal */

html {
    overflow-y:scroll
}

body {
    padding-top: 60px
}

section {
    overflow: auto;
}

textarea {
    resize: vertial;
}

.center {
    text-align: center;
}

.center h1 {
    margin-bottom: 10px;
}

/* typography */

h1, h2, h3, h4, h5, h6 {
    line-height: 1
}

h1 {
    font-size: 3em;
    letter-spacing: -2px;
    margin-bottom: 30px;
    text-align: center;
}

h2 {
    font-size: 1.7em;
    letter-spacing: -1px;
    margin-bottom: 30px;
    text-align: center;
    font-weight: normal;
    color: #999;
}

p {
    font-size: 1.1em;
    line-height: 1.7em;
}

你能否发布一下你导入时 custom.css.scss 的样子? - Zkoh
2
请问您是否已经完成以下步骤:1)在编辑 Gemfile 文件后运行 “bundle install” 命令,以及 2)重新启动 Rails 服务器? - Jesse Wolgamott
我发现了另一件非常奇怪的事情。每次我添加一个新的控制器,例如名为“test”的控制器,Rails都会在样式表目录中建立两个文件:test.css和test.css.scss。 - BiallaC
好的,我想我明白了。 我正在使用App LiveReload,并勾选了“编译SASS…”框 - 这可能导致了问题!感谢您的帮助!问候 Chris - BiallaC
这有帮助:https://github.com/anjlab/bootstrap-rails/issues/35#issuecomment-10491002 谢谢,Jignesh - Jignesh Gohel
显示剩余2条评论
9个回答

17

我遇到了类似的问题,看到Habax的解决方案并尝试了最后一步。

我只是重新启动了服务器。

结果证明这就足够了。希望能帮到你。


6

我曾经遇到过类似的问题,我将文件类型从css改为了scss。我敢打赌,如果你从文件名中删除'.css',它就能正常工作。


5

我在使用 Rails 6Bootstrap 4 开发应用时也遇到了类似的问题。

问题在于我没有在 app/assets/stylesheets/application.scss 文件中指定 bootstrap.scss 文件的完整路径。

在使用以下命令安装 Bootstrap 4 及其依赖项后:

yarn add bootstrap jquery popper.js

我只需要将它从这个状态修改:

@import "bootstrap";

to

@import 'bootstrap/scss/bootstrap';

接下来,您可以通过以下方式向app/javascript/packs/application.js文件添加boostrap.js文件:

require("bootstrap");

我希望你能从中受益。

希望这可以帮助你


2
面临同样的问题。我将custom.css.scss重命名为custom.css,并在Gemfile中指定了ruby版本,然后运行bundle install。 在我的情况下: ruby '2.0.0'

2

在一个新应用程序中遇到了相同的问题,但重新启动开发服务器解决了这个问题。


1
我曾遇到同样的问题,通过修复bootstrap-sass和sass-rails版本解决了问题:

bootstrap-sass和sass-rails的版本为:

gem 'sass-rails', '~> 3.2'
gem 'bootstrap-sass', '~> 2.3.1.0'

然后运行 bundle install 并重新启动服务器。

1

我只想把我的解决方案作为参考。今天我也遇到了这个问题。 如果你也使用带有scss模式的emacs,那么这可能会有所帮助。默认情况下,当你保存scss文件时,emacs会自动编译这些scss文件并创建相应的.css文件。然后你只需要删除这些.css文件。或者将下面的代码放入.emacs中以进行永久修复。

(setq scss-compile-at-save nil) ;; disable the auto-compilation

1

我在我的scss文件中遇到了"无法找到或无法读取要导入的文件:bootstrap"的同样问题。 我只需在config.ru文件中添加"bootstrap-sass"的require语句即可解决。 我的config.ru如下所示。

# This file is used by Rack-based servers to start the application.

require ::File.expand_path('../config/environment',  __FILE__)
require 'bootstrap-sass' #require statement of bootstrap-sass
run Rails.application

0

对我来说,运行npm install解决了这个问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接