Дайджест отпечатков пальцев не добавляется к пути изображения в Rails 3.2.22.5

У меня есть класс css, объявленный в частичном CSS с именем '_city-images.css.scc':

.city-art {
  background: url(image-path('cities-images.png')) no-repeat;
}

Проблема заключается в компиляции ресурсов через assets:precompile. Путь, сгенерированный помощником image-path, не создается с помощью отпечатка пальца.

Сгенерированный путь: https://abc.mysite.com/assets/cities-images.png Но это должно быть что-то вроде: https://abc.mysite.com/assets/cities-images-XXXXXXXXXXXXXX.png

Прежде чем вы спросите, проблема только в файлах .css.scss. Все пути в других файлах генерируются с помощью отпечатков пальцев. Печать отпечатков пальцев также включена в production.rb: config.assets.digest = true

Я много искал, но не смог найти решение, которое сработало.

Кто-нибудь может помочь?


person Nazeef Ahmad Meer    schedule 21.11.2017    source источник


Ответы (2)


Если вы еще не использовали массив precompile, вы можете добавить свои индивидуальные таблицы стилей и js (исключая частичные файлы scss, поскольку частичные файлы включаются в некоторые другие файлы scss, которые вы должны включить) внутри config/initializers/assets.rb:

Rails.application.config.assets.precompile += %w( admin.js admin.css )

Примечание: всегда указывайте ожидаемое имя скомпилированного файла, оканчивающееся на .js или .css, даже если вы хотите добавить файлы Sass или CoffeeScript в массив предварительной компиляции.

В вашем случае, если ваш частичный _city-images.css.scss импортируется в какой-то другой scss base.css.scss, просто включите ( base.css ) в массив precompile.

Вы также можете ознакомиться с официальным руководством по прекомпиляции ресурсов.

person Wasif Hossain    schedule 21.11.2017
comment
Массив предварительной компиляции уже реализован, и партиал также компилируется с помощью CSS. Проблема заключается в пути к изображению, который он генерирует. Он должен генерировать путь к изображению с отпечатком пальца в конце, например abc.mysite.com. /assets/cities-images-XXXXXXXXXXXXXX.png Но XXXXXXXXX не добавляется к пути к изображению. Это что-то связанное с помощником image-path('cities-images.png'). - person Nazeef Ahmad Meer; 22.11.2017

Наконец, потратив несколько часов, я решил проблему:

.city-art {
  background: url(asset-path('cities-images.png', image)) no-repeat;
}

Необходимо использовать путь к ресурсу с изображением параметра.

Также проверьте это, если у кого-то возникнет аналогичная проблема: asset_path в файлах scss rails

person Nazeef Ahmad Meer    schedule 22.11.2017