Я использую кеширование фрагментов рельсов, а внутри фрагмента есть файл изображения. Если я разворачиваю (очищая активы) с обновленным изображением, отпечаток пальца изображения будет меняться. Таким образом, пока фрагмент не истечет, он будет указывать на старое изображение и быть сломанным. Как я могу закончить фрагмент, чтобы получить обновленное изображение (кстати, я не могу запустить rails cache clear
)?Rails: Как пропустить фрагменты с устаревшими активами
0
A
ответ
0
Согласно Rails Cache Guide, Вы можете истекают фрагмент
expire_fragment(controller: 'products', action: 'recent', action_suffix: 'all_products')
Вы можете даже назвать свой сегмент кэша, т.е.
<% cache('some_image') do %>
*Your code here*
<% end %>
А потом истекают его под этим именем
expire_fragment('some_image')
проблема с этим решением заключается в том, что я должен знать все фрагменты кеша с изображениями в них и ts невозможно для большого веб-сайта. – peter
Вы действительно не придавали никакого контекста вашей ситуации кодирования, поэтому очень сложно обеспечить точное решение. Теперь, когда вы знаете, что вы можете завершить фрагмент, я бы предложил прочитать Руководство по кэшированию Rails и посмотреть некоторые другие параметры (например, вспомогательную функцию). И в следующий раз, когда вы зададите вопрос, каждый может выиграть, если вы предоставите код, контекст, то, что вы пробовали, и что хотите. Это дает нам более полное представление о том, как помочь вам, тогда мы можем помочь больше, чем опубликовать общее решение со ссылкой на ресурс. Удачи – JTG