Sass - это можно скомпилировать во время выполнения? - PullRequest
1 голос
/ 10 января 2011

Я видел, что некоторые Rails CMS (такие как Radiant) имеют плагины, которые по сути компилируют Sass при доступе к странице. Есть ли способ сделать это в обычном приложении rails? Делает это так быстро? По сути, я ищу способ убрать дополнительный шаг запуска Compass для компиляции моих таблиц стилей.

Ответы [ 4 ]

1 голос
/ 10 января 2011

Я не использовал компас специально, но похоже, что есть производственный флаг, поэтому файлы компилируются - я не мог себе представить, что они создадут его для перекомпиляции по запросу в процессе производства, Radiant компилирует его css при запуске приложения, и если затем зафиксируйте эти сгенерированные файлы CSS, он не попытается сгенерировать их снова AFAIK.

http://compass -style.org / документы / учебники / производство-CSS /

1 голос
/ 10 января 2011

Sass и Compass автоматически интегрируются с Rails. Если вы используете Rails 3, все, что вам нужно сделать, это добавить gem "haml" в ваш Gemfile, и все .sass и .scss файлы в public/stylesheets/sass будут скомпилированы в .css файлы в public/stylesheets.

0 голосов
/ 10 января 2011
  • Делает это так быстро?

При компиляции во время выполнения будет массивная производительность.

Как отметил Nex3 (автор Sass gem ) на другом форуме , нет необходимости запускать compass watch.

Я настоятельно рекомендую добавить в production.rb следующее: Sass::Plugin.options[:never_update] = true - это особенно важно, если вы работаете на Heroku. (вы также можете сделать это в файле стойки, где вы также можете указать другие опции

Хм, удачи

0 голосов
/ 10 января 2011

Компилировать по запросу? Я думаю, что это может быть ударом по производительности. Вы должны определенно использовать стратегию кэширования в этом случае. Таким образом, он компилирует таблицу стилей только в том случае, если ее нет в кэше.

Вы можете создать вспомогательный метод setup_stylesheet , который позаботится о настройке таблицы стилей CSS. Вы вызываете этот метод в макете приложения.

setup_stylesheet проверит, находится ли таблица стилей css в кеше, и если она есть, используйте ее Если это не так, то скомпилируйте его.

Другой подход:

Вы можете настроить инициализатор, который будет вызывать Compass для компиляции таблиц стилей SASS при запуске приложения.

...