Конвейер ресурсов Rails создает дайджест каждого актива и добавляет его к имени файла, поэтому имя не всегда одно и то же, вы не можете просто скопировать его и использовать его вечно (вы можете заставить рельсы воссоздать все дайджесты инапример, все URL-адреса изменены.
Я могу придумать несколько вариантов:
1 - отключить функцию дайджеста конвейера ресурсов. В конфигурационном файле вашей среды добавьте config.assets.digest = false
и теперь имяне будет дайджеста в конце.Тем не менее, прочитайте документы, так как дайджест существует по причине, вы можете отключить ее, но лучше решить, что после прочтения документа.
https://guides.rubyonrails.org/asset_pipeline.html#turning-digests-off
2 - Переместите эти изображения в/ public Если вы переместите изображения в / public, они не будут скомпилированы конвейером ресурсов.
3 - Используйте драгоценный камень, например non-stupid-digest, чтобы выбрать, какие ресурсы должны иметь его https://rubygems.org/gems/non-stupid-digest-assets позволяет вам сконфигурировать некоторые ресурсы, чтобы конвейер активов не пропускал генерацию дайджеста, не отключая функцию для всех активов
4 - оставьте конвейер активов в покое и поместите URL-адреса где-то в html.Чтобы исправить текущий путь к изображению, вы можете использовать помощник image_path
(например: image_path('something.png')
возвращает /assets/something-123...890.png
).Затем вы можете написать это в своем шаблоне, например:
<script>
imageUrl = '<%= image_url('something.png') %>';
</script>
И у вас будет доступ к этой переменной imageUrl в вашем коде JavaScript.