Я переключил приложение с 3.2.12 до 4.0.0.rc1. Когда я просмотрел его в процессе производства, фоновое изображение исчезло. Остальные мои объекты изображения были взяты без проблем.
В моих журналах я увидел, что все успешно обработанные изображения имеют дайджест, прикрепленный к концу, например:
2013-05-12T19:57:05.856277+00:00 heroku[router]: at=info method=GET path=/asset/explore-9ec2a1cfd4784133755637f6ef6d5673.png host=xxx.herokuapp.com fwd="69.140.148.75" dyno=web.1 connect=3ms service=5ms status=200 bytes=4064
И мое неудачное фоновое изображение не содержало дайджест, плюс код ответа 404:
2013-05-12T19:57:05.736354+00:00 heroku[router]: at=info method=GET path=/assets/background.png host=xxxx.herokuapp.com fwd="69.140.148.75" dyno=web.1 connect=2ms service=7ms status=404 bytes=728
В файле production.rb есть строка конфигурации, которая позволяет использовать это для кеширования:
# Generate digests for assets URLs
config.assets.digest = true
Это CSS для фона:
body {
background-image: url('background.png');
background-attachment: fixed;
background-position: 100% 100%;
background-repeat: no-repeat;
}
Я пришел к выводу, что мой CSS файл пытается получить URL-адрес изображения, которого не было, потому что он ссылался на простой ресурс ( "background.png" ) без хэша в конце. Это только проблема для изображений в CSS; все изображения, на которые ссылаются мои файлы .erb, прекрасны. Итак, как я могу ссылаться на этот актив в моем CSS без жесткого кодирования дайджеста? Есть ли способы обхода?
Спасибо за чтение.