Ответ 1
Я всегда версии всех таблиц стилей в "public/stylesheets/sass/*. sass" и настроил фильтр исключения для скомпилированных:
/public/stylesheets/*.css
Если вы используете HAML и SASS в своем приложении Rails, то любые шаблоны, которые вы определяете в public/stylesheet/*. sass, будут скомпилированы в *.css таблицы стилей. Из вашего кода вы используете stylesheet_link_tag, чтобы вытащить актив по имени, не беспокоясь о расширении.
Многие люди не любят хранить сгенерированный код или скомпилированный код в управлении версиями, а также разумно, что public/directory не должен содержать элементы, которые вы не отправляете в браузер.
Каков наилучший шаблон для выделения ресурсов SASS в проекте Rails?
Я всегда версии всех таблиц стилей в "public/stylesheets/sass/*. sass" и настроил фильтр исключения для скомпилированных:
/public/stylesheets/*.css
compass framework рекомендует помещать ваши таблицы стилей sass в таблицы приложений/стилей и скомпилированные css в public/stylesheets/compiled.
Вы можете настроить это, добавив следующий код в свою среду. rb:
Sass::Plugin.options[:template_location] = {
"#{RAILS_ROOT}/app/stylesheets" => "#{RAILS_ROOT}/public/stylesheets/compiled"
}
Если вы используете инфраструктуру compass, она настраивает эту конфигурацию для вас при ее установке.
Честно говоря, мне нравится иметь скомпилированные таблицы стилей SASS в управлении версиями. Они небольшие, только меняются, когда ваши файлы .sass меняются, а их развертывание вместе с остальным приложением означает, что компилятор SASS никогда не должен запускаться в процессе производства.
Другим преимуществом (хотя и маленьким) является то, что если вы не используете кеширование страниц, ваш процесс обработки релей не должен иметь доступ на запись в ваш каталог public_html
. Так что еще один способ использования вашего сервера может быть злым.
Отчасти это связано, но это хорошая идея для восстановления вашего 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.
Если я смогу это сделать, мне нравится хранить все мои стили в шаблонах 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.