Подтвердить что ты не робот

Каков наилучший способ хранения CSS-кода, созданного SASS, в вашем приложении и контроле источника?

Если вы используете HAML и SASS в своем приложении Rails, то любые шаблоны, которые вы определяете в public/stylesheet/*. sass, будут скомпилированы в *.css таблицы стилей. Из вашего кода вы используете stylesheet_link_tag, чтобы вытащить актив по имени, не беспокоясь о расширении.

Многие люди не любят хранить сгенерированный код или скомпилированный код в управлении версиями, а также разумно, что public/directory не должен содержать элементы, которые вы не отправляете в браузер.

Каков наилучший шаблон для выделения ресурсов SASS в проекте Rails?

4b9b3361

Ответ 1

Я всегда версии всех таблиц стилей в "public/stylesheets/sass/*. sass" и настроил фильтр исключения для скомпилированных:

/public/stylesheets/*.css

Ответ 2

compass framework рекомендует помещать ваши таблицы стилей sass в таблицы приложений/стилей и скомпилированные css в public/stylesheets/compiled.

Вы можете настроить это, добавив следующий код в свою среду. rb:

Sass::Plugin.options[:template_location] = {
  "#{RAILS_ROOT}/app/stylesheets" => "#{RAILS_ROOT}/public/stylesheets/compiled"
}

Если вы используете инфраструктуру compass, она настраивает эту конфигурацию для вас при ее установке.

Ответ 3

Честно говоря, мне нравится иметь скомпилированные таблицы стилей SASS в управлении версиями. Они небольшие, только меняются, когда ваши файлы .sass меняются, а их развертывание вместе с остальным приложением означает, что компилятор SASS никогда не должен запускаться в процессе производства.

Другим преимуществом (хотя и маленьким) является то, что если вы не используете кеширование страниц, ваш процесс обработки релей не должен иметь доступ на запись в ваш каталог public_html. Так что еще один способ использования вашего сервера может быть злым.

Ответ 4

Отчасти это связано, но это хорошая идея для восстановления вашего CSS во время развертывания вашего capistrano. Этот обратный вызов делает именно это:

after "deploy:update_code" do
  rails_env = fetch(:rails_env, "production")
  run "#{release_path}/script/runner -e #{rails_env} 'Sass::Plugin.update_stylesheets'"
end

Обновление. Это больше не нужно для современных версий Haml/Sass.

Ответ 5

Если я смогу это сделать, мне нравится хранить все мои стили в шаблонах SASS, когда я выбираю HAML/SASS для проекта, и я удалю application.css и scaffold.css. Затем я поместил SASS в public/stylesheets/sass и добавлю /public/stylesheets/ *.css в .gitignore.

Если мне нужно работать с комбинацией активов SASS и CSS, это немного сложнее. Самый простой способ справиться с этим - иметь выходной подкаталог для созданного CSS в каталоге stylesheets, а затем исключить этот подкаталог в .gitignore. Затем в ваших представлениях вы должны знать, какой тип стиля вы используете (SASS или CSS), в силу необходимости выбирать таблицу стилей public/stylesheets/foo или таблицу стилей public/stylesheets/sass-out/foo.

Если вам нужно пройти второй маршрут, создайте помощника, чтобы абстрагироваться от подкаталога sass-out.