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

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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
21
0
2 997
5
Перейти к ответу Данный вопрос помечен как решенный

Ответы 5

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

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

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

Ответ принят как подходящий

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

/public/stylesheets/*.css

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

Другое преимущество (хотя и небольшое) заключается в том, что если вы не используете кеширование страниц, вашему процессу rails не нужен доступ для записи в ваш каталог 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 в app / stylesheets, а ваш скомпилированный css - в public / stylesheets / compiled.

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

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

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

Другие вопросы по теме