Rails: используйте livereload с Asset Pipeline - PullRequest
14 голосов
/ 07 ноября 2011

Быстрый вопрос для профессионалов рельсов там ...

При работе с приложениями Rails 3.0.x я был активным пользователем Guard и LiveReload. Однако, похоже, что при использовании конвейера ресурсов в Rails 3.1 средство защиты от перезагрузки не знает, что изменения в файле Sass должны инициировать отправку нового CSS в браузер.

Кто-нибудь использует LiveReload с Asset Pipeline? Если да, то как ты это делаешь?

Спасибо!

Ответы [ 3 ]

21 голосов
/ 15 ноября 2011

После нескольких обсуждений в Github я обнаружил, что моя проблема исправлена:

1) Убедитесь, что все файлы scss названы в соответствии с новым соглашением об активах, например: filename.css.scss

Я использовал scss до Rails 3.1 и только что назвал все мои файлы sass filename.scss.

2) Используйте следующее для livereload в вашем файле защиты:

guard 'livereload' do
  watch(%r{app/helpers/.+\.rb})
  watch(%r{app/views/.+\.(erb|haml)})
  watch(%r{(public/).+\.(css|js|html)})
  watch(%r{app/assets/stylesheets/(.+\.css).*$})    { |m| "assets/#{m[1]}" }
  watch(%r{app/assets/javascripts/(.+\.js).*$}) { |m| "assets/#{m[1]}" }
  watch(%r{lib/assets/stylesheets/(.+\.css).*$})    { |m| "assets/#{m[1]}" }
  watch(%r{lib/assets/javascripts/(.+\.js).*$}) { |m| "assets/#{m[1]}" }
  watch(%r{vendor/assets/stylesheets/(.+\.css).*$}) { |m| "assets/#{m[1]}" }
  watch(%r{vendor/assets/javascripts/(.+\.js).*$})  { |m| "assets/#{m[1]}" }
  watch(%r{config/locales/.+\.yml})
end
6 голосов
/ 15 ноября 2011

Я нашел, что следующее тоже неплохо работает:

guard :livereload do
  watch(%r{^app/.+\.(erb|haml|js|css|scss|sass|coffee|eco|png|gif|jpg)})
  watch(%r{^app/helpers/.+\.rb})
  watch(%r{^public/.+\.html})
  watch(%r{^config/locales/.+\.yml})
end

Это не код по умолчанию, который генерируется при запуске guard init livereload, так как по некоторым причинам он не очень хорошо работает с импортом sass.

1 голос
/ 23 июня 2015

Как отметил @mirko в своем комментарии, дополнительные .css в файлах scss устарели.Таким образом, добавление этого не является хорошим решением, и я столкнулся с тем, что простое добавление расширения scss приводит к перезагрузке страницы.

Итак, я обнаружил, что это работает:это сопоставляет файл scss скомпилированным файлом css.Я надеюсь, что это работает и для sass.

Источник: Github Issue

...