Jak sprawić, by Rails 3.1 używał Sass (Over SCSS) jako domyślnego?
Trudno jest wymyślić, jak zmienić SASS, a nie SCSS, jako domyślny arkusz stylów.
Próbowałem zrobić sass_config.rb
Plik z tym:
Sass::Plugin.options[:syntax] = :sass
Sass::Plugin.options[:style] = :compressed
Próbowałem też dodać to do środowiska.plik rb. Tak czy siak dostaję ten błąd:
.../config/environment.rb:7:in `<top (required)>':
uninitialized constant Sass::Plugin (NameError)
6 answers
Dla rails 3.1.rc4, można ustawić config:
config.sass.preferred_syntax = :sass
W pliku application.rb
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-11 15:29:56
Dodałem do config/environments/development.rb
:
config.sass.preferred_syntax = :sass
Udało się.Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-10 01:56:16
Zrób require 'sass/plugin'
i upewnij się, że jest na dole po twoim Application.initialize!
telefonie.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-15 05:51:30
Zdecydowanie wolę też sass od scss - czy rozważałeś użycie gem compass dla wszystkich swoich CSS i dodanie preferred_syntax = :sass
do config/compass.rb
Nie testowałem jeszcze tego na rails 3.1, ale działa w 3.0.7
EDIT
Jako krok rozwiązywania problemów, co się stanie, gdy usuniesz tylko pierwszą linię kodu z sass_config.rb tak, że ma tylko drugi? Czy obie te linie powodują błąd?
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-15 04:09:16
Jak skomentował @krainboltgreene, dodając następujący wiersz do config/application.rb
config.generators.stylesheet_engine = :sass
Sprawia, że sass
jest domyślnym formatem dla generatorów arkuszy stylów. Jednak od Rails 3.1.beta1 nie obsługuje tego, jeden dostaje następujące komunikaty o błędach
$ 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
Jak widzisz, nie można zmienić domyślnego formatu bez przerwania generatorów. Zamiast tego możesz ręcznie utworzyć dodatkowe*.css.pliki sass, które działają dobrze z lub bez scss.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-05-21 22:47:02
Znalazłem tę odpowiedź gdzieś indziej, nie pamiętam dokładnie, ale Wstaw to 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
Preferuję również składnię SASS (do SCSS). Wszystko co musisz zrobić, to nazwać Pliki mystylesheet.css.sass
i to po prostu działa. Możesz nawet zmienić nazwę application.css
na application.css.sass
, zmienić komentarze u góry na //
zamiast /* */
i użyć dyrektyw require_*
-to wszystko działa, a następnie możesz użyć SASS w globalnym arkuszu stylów aplikacji. Nie będzie, jeśli użyjesz kompasu w app/stylesheets
.
Nie wymagaj Sass::Plugin
, jest całkowicie oddzielny od nowego silnika rails asset, który jest oparty na zębatkach. Wie już, jak skompilować SASS i prawidłowo zarządza pakietem zasobów.
Wyobrażam sobie, że nowe wydanie Compass zrobi to automatycznie dla projektów Rails 3.1 + przy użyciu potoku zasobów.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2011-06-07 01:06:36