Конвейер ресурсов sass-rails: неправильное создание путей к изображениям; `url(/images/blah.png)` вместо `url(/assets/blah.png)`

В разделе 2.2.2, "CSS и Sass", я сказали поместить image-url('delete.png')в мой sass. Так и у меня.

Тем не менее, он генерирует CSS вроде

background-image: url(/images/delete.png)

вместо того, что мне везде говорят, он должен генерировать, правильную и очевидную вещь,

background-image: url(/assets/delete.png)

Что. Черт.

Я буквально несколько дней пытался понять, откуда это взялось.

Вот краткое описание соответствующих настроек, которые приводят к такому поведению. Вот суть тех же файлов в более ранней версии нашей кодовой базы(сразу после того, как мы реализовали конвейер ресурсов, и он фактически работал около недели, прежде чем возникло это неприятное поведение). Можете ли вы найти различия? Какие-нибудь другие файлы, о которых вы можете подумать, могут быть причиной этого?

Примечание.

  • Мы намеренно используем более старую версию sass-rails, потому что более новая версия приводила к Слишком глубокому уровню стека! ошибки при прекомпиляции.
  • Мы используем Компас.

Две хакерские попытки обходного пути.

Потому что на самом деле устранение неполадок конвейера ресурсов — отстой.

1: Поместите изображения в /images

Я попытался просто переместить все изображения в public/imagesи добавить это как путь загрузки.Это работало в dev (изображения доступны либо в /assets, либо в /images), но предварительная компиляция для производства помещает изображения с отпечатками пальцев только в /assets(obvs) , поэтому, когда sass-rails вводит url(/imagse/delete-120398471029384102364.png), его невозможно найти.

2: Сделать /public/images символической ссылкой на /public/assets

Это, вероятно, будет работать в рабочей среде, но в процессе разработки папка /assets не существует, поэтому url(/images/delete .png)приводят к ненайденным изображениям.

17
задан chadoh 14 June 2012 в 19:51
поделиться