Nice programing

Rails 3.1에서 SASS (Over SCSS)를 기본값으로 사용하는 방법은 무엇입니까?

nicepro 2020. 12. 8. 20:02
반응형

Rails 3.1에서 SASS (Over SCSS)를 기본값으로 사용하는 방법은 무엇입니까?


스타일 시트의 기본값으로 SCSS가 아닌 SASS를 만드는 방법을 찾는 데 어려움을 겪습니다.

sass_config.rb이 파일을 만들어 보았습니다 .

Sass::Plugin.options[:syntax] = :sass
Sass::Plugin.options[:style] = :compressed

또한 environment.rb 파일에 추가해 보았습니다. 어느 쪽이든이 오류가 발생합니다.

.../config/environment.rb:7:in `<top (required)>': 
  uninitialized constant Sass::Plugin (NameError)

레일 3.1.rc4의 경우 구성을 설정할 수 있습니다.

config.sass.preferred_syntax = :sass

application.rb파일


다음을 추가했습니다 config/environments/development.rb.

config.sass.preferred_syntax = :sass

그게 속임수였습니다.


수행 require 'sass/plugin'하고 있는지 그것은 당신의 후 하단의 확인 Application.initialize!전화.


나는 확실히 scss보다 sass를 선호합니다- 모든 CSS에 나침반 gem사용하고 preferred_syntax = :sassconfig / compass.rb에 추가 하는 것을 고려 했습니까?

아직 레일 3.1에서 이것을 테스트하지는 않았지만 3.0.7에서 작동합니다.

편집하다

문제 해결 단계로 sass_config.rb에서 첫 번째 코드 행만 제거하여 두 번째 코드 만 가지게하면 어떻게됩니까? 이 두 줄이 모두 오류를 유발합니까?


@krainboltgreene가 언급했듯이 다음 줄을 config/application.rb

config.generators.stylesheet_engine = :sass

sass스타일 시트 생성기의 기본 형식을 만듭니다 . 그러나 Rails 3.1.beta1은이를 지원하지 않으므로 다음과 같은 오류 메시지가 표시됩니다.

$ rails g scaffold user name:string
...
Could not find "scaffold.css.sass" in any of your source paths. Your current source paths are:
.../gems/railties-3.1.0.beta1/lib/rails/generators/rails/scaffold/templates
...

$ rails g controller users
...
Could not find "stylesheet.css.sass" in any of your source paths. Your current source paths are: 
.../gems/railties-3.1.0.beta1/lib/rails/generators/rails/assets/templates

보시다시피 생성기를 중단하지 않고는 기본 형식을 변경할 수 없습니다. 대신 scss 파일을 사용하거나 사용하지 않고 정상적으로 작동하는 추가 * .css.sass 파일을 수동으로 만들 수 있습니다.


이 답변을 다른 곳에서 찾았지만 정확히 기억할 수는 없지만 다음과 config/initializers/sass.rb같이 입력하십시오 .

Sass::Engine::DEFAULT_OPTIONS[:load_paths].tap do |load_paths|
  load_paths << "#{Rails.root}/app/assets/stylesheets"
  load_paths << "#{Gem.loaded_specs['compass'].full_gem_path}/frameworks/compass/stylesheets"
end

또한 SASS 구문 (SCSS보다)을 선호합니다. mystylesheet.css.sass대신 파일 이름을 지정 하기 만하면됩니다. 당신은 당신의 이름을 바꿀 수 있습니다 application.css에를 application.css.sass, 상단의 의견을 변경 //하는 대신 /* */하고 사용 require_*지침 - 모든 작품을, 그리고 당신은 당신의 응용 프로그램 전역 스타일 시트에 SASS를 사용할 수 있습니다. .NET에서 나침반을 사용하면 그렇지 않습니다 app/stylesheets.

필요하지 않습니다 Sass::Plugin. Sprockets를 기반으로하는 새로운 Rails 자산 엔진과 완전히 별개입니다. SASS를 컴파일하는 방법을 이미 알고 있으며 자산 번들링을 적절하게 관리합니다.

새로운 Compass 릴리스가 자산 파이프 라인을 사용하는 Rails 3.1+ 프로젝트에 대해이를 자동으로 수행 할 것이라고 생각합니다.

참고 URL : https://stackoverflow.com/questions/6006360/how-to-make-rails-3-1-use-sass-over-scss-as-the-default

반응형