complete_morons
complete_morons

Reputation: 843

Sass::SyntaxError: File to import not found or unreadable: bootstrap-sprockets

I am suddenly getting this error in development and in production on deployment.

custom.css.scss

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

error (in production)

rake aborted!
Sass::SyntaxError: File to import not found or unreadable: bootstrap-sprockets.
Load paths:
/srv/www/myapp/releases/20141001060418/app/assets/images
/srv/www/myapp/releases/20141001060418/app/assets/javascripts
/srv/www/myapp/releases/20141001060418/app/assets/stylesheets
/srv/www/myapp/releases/20141001060418/vendor/assets/javascripts
/srv/www/myapp/releases/20141001060418/vendor/assets/stylesheets

Upvotes: 59

Views: 74148

Answers (17)

ChMatt85
ChMatt85

Reputation: 1

I was able to fix the issue by changing the (.css) to (.scss). Then in there I just have this..

*= require_tree .
*= require_self
@import "bootstrap";

I also have @import "boostrap" in the application.js file. This is just how it worked for me - not a 100% proper fix - it works though.

Upvotes: 0

Yellow Flash
Yellow Flash

Reputation: 1

I encountered that kind of issue. If you can see lower version of bootstrap-sass than 3.4.1 in "Gemfile.lock", please upgrade bootstrap-sass gem version.

Upvotes: 0

yash sanghavi
yash sanghavi

Reputation: 422

I solved My Issue By Removing

gem 'bootstrap'

Upvotes: -1

Mark Swardstrom
Mark Swardstrom

Reputation: 18070

For the Sass version of Bootstrap 5 in versions of rails before 6 use

gem `bootstrap`

For Sass versions of Bootstrap 3 and 2 Make sure you don't have

gem 'bootstrap'  # Remove this line
gem 'bootstrap-sass'

It should just be

gem 'bootstrap-sass'

Upvotes: 9

hardik chugh
hardik chugh

Reputation: 1150

I was also facing the similar error in development environment:

Error Image

I solved this problem by-

  1. In my gemfile, I added them -

    gem 'bootstrap', '~> 4.2.1'

    gem 'jquery-rails'

  2. In application.js file,add these -

    //= require jquery3

    //= require popper

    //= require bootstrap-sprockets

  3. In the file with .scss extension, simply add -

    @import "bootstrap";

    After that, just run bundle install

Upvotes: 0

Godwin
Godwin

Reputation: 21

In your Gemfile you need to add the bootstrap-sass gem, and ensure that the sass-rails gem is present - it is added to new Rails applications by default.

gem 'bootstrap-sass', '3.3.7'
gem 'sass-rails', '5.0.6'
gem 'rails', '5.0.0'

bundle install and restart your server to make the files available through the pipeline. Import Bootstrap styles in app/assets/stylesheets/application.scss:

// "bootstrap-sprockets" must be imported before "bootstrap" and "bootstrap/variables"
@import "bootstrap-sprockets";
@import "bootstrap";

bootstrap-sprockets must be imported before bootstrap for the icon fonts to work. Make sure the file has .scss extension (or .sass for Sass syntax). If you have just generated a new Rails app, it may come with a .css file instead. If this file exists, it will be served instead of Sass, so rename it:

$ mv app/assets/stylesheets/application.css TO: app/assets/stylesheets/application.scss

Then, remove all the *= require_self and *= require_tree . statements from the sass file. Instead, use @import to import Sass files. e.g

*= require_tree .
*= require_self

To:

@import require_tree .
@import require_self

Do not use *= require in Sass or your other stylesheets will not be able to access the Bootstrap mixins or variables. Bootstrap JavaScript depends on jQuery. If you're using Rails 5.1+, add the jquery-rails gem to your Gemfile:

gem 'jquery-rails'

$ bundle install

Require Bootstrap Javascripts in

app/assets/javascripts/application.js:

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

bootstrap-sprockets and bootstrap should not both be included in

application.js

. bootstrap-sprockets provides individual Bootstrap Javascript files (alert.js or dropdown.js, for example), while bootstrap provides a concatenated file containing all Bootstrap Javascripts.

This will fix the error

Copied @github

Upvotes: 2

Linda Kadz
Linda Kadz

Reputation: 361

I had the same problem

sass::syntaxerror: file to import not found or unreadable: config/variables.

, I opened a new css file (I called it custom.css) then copied all the css to the file. On application.css I removed the

@import "config/variables" plus all the other @imports

This worked for me, I hope it does work for you too!

Upvotes: 1

Sergiu
Sergiu

Reputation: 1211

After making changes to Gemfile, do not forget to restart the server with rails s

Restarting the rails server worked like a charm! :D

Upvotes: 94

Deep Mistry
Deep Mistry

Reputation: 170

I have observed the same behaviour. In my case i have removed the version of the gem 'bootstap-sass' and it worked. There might be compatibility issue with the gem version which was causing the problem.

Gem file

gem 'bootstrap-sass'

After making changes in the gem file perform following commands:

bundle install

If the server is already running then stop it by "CTRL+C" and start the server again

rails s

Upvotes: 2

technicalpickles
technicalpickles

Reputation: 166

If you get this message when running integration tests, make sure that your asset gems are included in the test group.

For example, change:

group :assets do gem 'sass-rails', '~> 5.0.3' gem 'uglifier', '>= 1.3.0' end

To:

group :assets, :test do gem 'sass-rails', '~> 5.0.3' gem 'uglifier', '>= 1.3.0' end

Upvotes: 1

Adrian Onu
Adrian Onu

Reputation: 671

This is how I solved the issue.

Go to Bootstrap for Sass Github page and follow the instructions:

  1. Add the following to the Gemfile

    gem 'bootstrap-sass', '~> 3.3.6' gem 'sass-rails', '>= 3.2'

  2. Run the command bundle install

  3. Start/restart the server

    rails s

Also, make sure the file has .scss extension (or .sass for Sass syntax). If you have just generated a new Rails app, it may come with a .css file instead. If this file exists, it will be served instead of Sass, so rename it. Then, remove all the *= require_self and *= require_tree . statements from the sass file. Instead, use @import to import Sass files.

Upvotes: 3

Paa Yaw
Paa Yaw

Reputation: 459

make sure you run the following commands after adding this gem to your Gemfile put this inside your Gemfile

    gem "bootstrap-sprockets", "~>3.3"
    gem "bootstrap"

now stop your server and run the following:

    bundle install
    rails server

to restart your server. Refresh your browser and you should see changes reflect immediately. In production you may have to run this command to precompile your assets:

    bundle exec bin/rake assets:precompile

It worked for me. Hope this was helpful.

Upvotes: 0

Azlan Jamal
Azlan Jamal

Reputation: 2818

Please restart you rails server after every changes in Gemfile

rails server

Upvotes: 13

Nitish Kumar
Nitish Kumar

Reputation: 419

put this in gem file

gem 'bootstrap-sass', '~> 3.3.5'
gem 'sass-rails', '>= 3.2'

then run $ bundle install

Restart the server.

Upvotes: 1

meOn
meOn

Reputation: 332

This error mostly comes in rails 3.2.x versions. If you are using rails version 3.2 you have to specify a special version in your gem file like below:

gem 'rails', '3.2.0'
gem 'bootstrap-sass', '3.2.0.2'

It will resolve the problem for rails -v '3.2.0'

Upvotes: 1

Vitalie Suba
Vitalie Suba

Reputation: 147

I solved it in following steps:

  1. List item
  2. copying the "bootstrap.css" in my "app/assets/stylesheets/ (it was missing)
  3. gem install autoprefixer-rails (also modify Gemfile)
  4. gem install sprockets (also modify Gemfile)
  5. bundle install
  6. RESTART server (not just refreshing page)

Upvotes: 6

flexus
flexus

Reputation: 465

I solved this issue by upgrading bootstrap-sass

gem 'bootstrap-sass', '3.2.0.2'

Upvotes: 28

Related Questions