在 Heroku 上,<Rails::Application::Configuration
未定义方法sass'
可能会导致应用程序无法正常运行。为了解决这个问题,可以采取以下措施:
Gemfile
中已包含sass
库:
在 Heroku 上的 Gemfile
中添加 sass
库,以便在本地运行时加载 sass
库。
gem 'sass'
scss
而不是sass
:
在 Rails 项目中,考虑使用 scss
(SCSS)而不是 sass
,因为 scss
是从 Ruby 社区起源并更好地与 Rails 集成。 将 sass
替换为 scss
,在 application.css.scss
文件中添加以下代码:
*= require_tree .
*= require_self
application.rb
文件中包含Sass::Script
:
在 application.rb
文件中添加 Sass::Script
依赖,以确保能够正确加载 scss
。
config.sass.load_paths << "#{Rails.root}/app/assets/stylesheets"
config.sass.include_paths << "#{Rails.root}/app/assets/stylesheets"
config.sass.use_importer = true
Gemfile
中添加sass-rails
:
在 Gemfile
中添加 sass-rails
,以在 Heroku 部署时自动加载 sass
库。
gem 'sass-rails', '~> 5.2'
在 config/application.rb
文件中添加以下代码,以便在 Heroku 部署时自动配置 Sass::Script
:
config.sass.load_paths = [File.expand_path('app/assets/stylesheets', dir),
File.expand_path('vendor/assets/stylesheets', __dir__),
File.expand_path('app/assets/fonts', __dir__),
File.expand_path('vendor/assets/fonts', __dir__),
]
config.sass.include_paths = [File.expand_path('app/assets/stylesheets', dir),
File.expand_path('vendor/assets/stylesheets', __dir__),
File.expand_path('app/assets/fonts', __dir__),
File.expand_path('vendor/assets/fonts', __dir__),
]
config.sass.compile_style = :compressed
config.sass.line_comments = false
application.css
中正确引用application.scss
: 在 application.css
文件中,确保正确引用 application.scss
,如下所示:
/*
file
directive at the top of theapplication.css
file will be prepended to the list.现在,在 Heroku 上的 Rails 应用程序中,您应该能够使用 sass
或 scss
成功编译 CSS 档案。
领取专属 10元无门槛券
手把手带您无忧上云