[英]Heroku deployment - Sass::SyntaxError: File to import not found or unreadable: bootstrap-sprockets
[英]Sass::SyntaxError: File to import not found or unreadable: bootstrap-sprockets
我突然在開發和部署生產中遇到這個錯誤。
自定義.css.scss
@import "bootstrap-sprockets";
@import "bootstrap";
錯誤(在生產中)
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
更改 Gemfile 后,不要忘記用rails s
重新啟動服務器
重新啟動 rails 服務器就像一個魅力! :D
我通過升級 bootstrap-sass 解決了這個問題
gem 'bootstrap-sass', '3.2.0.2'
每次更改 Gemfile 后,請重新啟動 Rails 服務器
rails server
對於6之前的 rails版本中的 Bootstrap 5 的 Sass 版本使用
gem `bootstrap`
對於 Bootstrap 3 和 2 的 Sass 版本,請確保您沒有
gem 'bootstrap' # Remove this line
gem 'bootstrap-sass'
它應該只是
gem 'bootstrap-sass'
我通過以下步驟解決了它:
這就是我解決問題的方法。
轉到Bootstrap for Sass Github 頁面並按照說明操作:
將以下內容添加到 Gemfile
gem 'bootstrap-sass', '~> 3.3.6' gem 'sass-rails', '>= 3.2'
運行命令bundle install
啟動/重啟服務器
導軌
此外,請確保文件具有 .scss 擴展名(或 .sass 用於 Sass 語法)。 如果您剛剛生成了一個新的 Rails 應用程序,它可能會附帶一個 .css 文件。 如果此文件存在,它將代替 Sass 提供服務,因此重命名它。 然后,刪除所有 *= require_self 和 *= require_tree 。 sass 文件中的語句。 相反,使用 @import 導入 Sass 文件。
我觀察到了同樣的行為。 就我而言,我已經刪除了 gem 'bootstap-sass' 的版本並且它起作用了。 導致問題的 gem 版本可能存在兼容性問題。
寶石文件
gem 'bootstrap-sass'
在 gem 文件中進行更改后,執行以下命令:
bundle install
如果服務器已經在運行,那么通過“ CTRL+C ”停止它並再次啟動服務器
rails s
在您的 Gemfile 中,您需要添加 bootstrap-sass gem,並確保 sass-rails gem 存在 - 默認情況下它會添加到新的 Rails 應用程序中。
gem 'bootstrap-sass', '3.3.7'
gem 'sass-rails', '5.0.6'
gem 'rails', '5.0.0'
bundle install 並重新啟動您的服務器以使文件通過管道可用。 在app/assets/stylesheets/application.scss 中導入 Bootstrap 樣式:
// "bootstrap-sprockets" must be imported before "bootstrap" and "bootstrap/variables"
@import "bootstrap-sprockets";
@import "bootstrap";
bootstrap-sprockets 必須在 bootstrap 之前導入,圖標字體才能工作。 確保文件具有 .scss 擴展名(或 .sass 用於 Sass 語法)。 如果您剛剛生成了一個新的 Rails 應用程序,它可能會附帶一個 .css 文件。 如果此文件存在,它將代替 Sass 提供服務,因此將其重命名:
$ mv app/assets/stylesheets/application.css到: app/assets/stylesheets/application.scss
然后,刪除所有*= require_self
和*= require_tree .
sass 文件中的語句。 相反,使用@import
導入 Sass 文件。 例如
*= require_tree .
*= require_self
到:
@import require_tree .
@import require_self
不要在 Sass 中使用*= require
,否則您的其他樣式表將無法訪問 Bootstrap 混合或變量。 Bootstrap JavaScript 依賴於 jQuery。 如果您使用的是Rails 5.1+
,請將 jquery-rails gem 添加到您的 Gemfile 中:
gem 'jquery-rails'
$ bundle install
需要 Bootstrap Javascripts
應用程序/資產/javascripts/application.js:
//= require jquery
//= require bootstrap-sprockets
bootstrap-sprockets
和bootstrap
不應同時包含在
應用程序.js
. bootstrap-sprockets
提供單獨的 Bootstrap Javascript 文件(例如,alert.js 或 dropdown.js),而bootstrap
提供一個包含所有 Bootstrap Javascript 的連接文件。
這將修復錯誤
Copied @github
此錯誤主要出現在 rails 3.2.x 版本中。 如果您使用的是 rails 3.2 版,則必須在您的 gem 文件中指定一個特殊版本,如下所示:
gem 'rails', '3.2.0'
gem 'bootstrap-sass', '3.2.0.2'
它將解決rails -v '3.2.0'
把它放在 gem 文件中
gem 'bootstrap-sass', '~> 3.3.5'
gem 'sass-rails', '>= 3.2'
然后運行$ bundle install
重新啟動服務器。
如果您在運行集成測試時收到此消息,請確保您的資產 gem 包含在測試組中。
例如,更改:
group :assets do gem 'sass-rails', '~> 5.0.3' gem 'uglifier', '>= 1.3.0' end
到:
group :assets, :test do gem 'sass-rails', '~> 5.0.3' gem 'uglifier', '>= 1.3.0' end
我有同樣的問題
sass::syntaxerror: file to import not found or unreadable: config/variables.
,我打開了一個新的 css 文件(我稱之為 custom.css),然后將所有的 css 復制到文件中。 在 application.css 上我刪除了
@import "config/variables" 加上所有其他@imports
這對我有用,我希望它也對你有用!
確保在將此 gem 添加到 Gemfile 后運行以下命令將其放入 Gemfile
gem "bootstrap-sprockets", "~>3.3"
gem "bootstrap"
現在停止您的服務器並運行以下命令:
bundle install
rails server
重新啟動您的服務器。 刷新您的瀏覽器,您應該會立即看到更改的反映。 在生產中,您可能必須運行此命令來預編譯您的資產:
bundle exec bin/rake assets:precompile
它對我有用。 希望這是有幫助的。
我有同樣的問題,但我解決了它,你只需要在開發組中添加你的gem bootstrap-sass
,如下所示:
group :development do
gem 'bootstrap-sass'
end
我希望這個能幫上忙
我在開發環境中也遇到了類似的錯誤:
我解決了這個問題 -
在我的 gemfile 中,我添加了它們 -
gem 'bootstrap', '~> 4.2.1'
寶石'jquery-rails'
在 application.js 文件中,添加這些 -
//= 需要 jquery3
//= 需要 popper
//= 需要引導鏈輪
在擴展名為.scss的文件中,只需添加 -
@import "引導程序";
之后,只需運行bundle install
我遇到過這樣的問題。 如果在“Gemfile.lock”中看到低於 3.4.1 的 bootstrap-sass 版本,請升級 bootstrap-sass gem 版本。
我能夠通過將 (.css) 更改為 (.scss) 來解決此問題。 然后在那里我只有這個..
*= require_tree .
*= require_self
@import "bootstrap";
我在 application.js 文件中也有 @import "boostrap"。 這就是它對我有用的方式——不是 100% 正確的修復——但它確實有效。
我通過刪除解決了我的問題
gem 'bootstrap'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.