Выборочное отключение asset.digest в Rails 3, чтобы внешний сайт мог включать таблицу стилей - PullRequest
7 голосов
/ 29 февраля 2012

Цель:

Я бы хотел, чтобы блог Tumblr извлекал CSS из каталога ресурсов приложения Rails.

Это означает, что я могу использовать SASS, Compass и другие.CSS для создания стиля.

Это также означает, что если что-либо обновляется в низкоуровневом CSS, tumblr.css будет восстановлено вместе с обычным cap deploy, и внешний вид Тумблера изменится автоматически.

Проблема:

Конвейер ресурсов Rails 3 добавляет хэш к имени файла, например:

tumblr-c6ec969ce054623163b9404f6c8330e9.css

Поэтому Tumblrшаблон не может включать его, если я не обновляю URL-адрес вручную каждый раз, когда он изменяется.

Существует ли способ выборочного отключения asset.digest для одного файла или явного создания одного файла CSS из SASS безпроходит через весь актив активов?Или, может быть, создать автоматический псевдоним или что-то?

Ответы [ 2 ]

6 голосов
/ 02 апреля 2012

Вам вообще не придется отключать дайджесты.

Когда Rails предварительно компилирует ресурсы, он добавляет дайджесты ко всем файлам. Однако он также создает идентичные файлы без дайджестов. Таким образом, оба следующих файла будут загружать один и тот же CSS:

  • tumblr-c6ec969ce054623163b9404f6c8330e9.css
  • tumblr.css

Если вы проверите каталог public/assets после прекомпиляции, вы должны увидеть оба файла.

Надеюсь, это поможет.

3 голосов
/ 20 мая 2015

В Rails 4 кажется, что прекомпиляция ресурса больше не делает и дайджест-файлы, и не-дайджест-имена файлов, только компилируются имена файлов с дайджестом. Лучший вариант для прекомпиляции ресурсов без хеша дайджеста - использовать гем Non Stupid Digest Assets:

https://github.com/alexspeller/non-stupid-digest-assets

Надеюсь, они добавят это в проект Rails как стандартную функцию в Rails 5.

...