Остановить кэширование изображений в Rails и браузере? - PullRequest
4 голосов
/ 16 декабря 2009

Я создал средство обрезки изображения, которое я могу щелкнуть по изображению и обрезать его, и оно сохраняет новое обрезанное изображение поверх старого, а затем перенаправляет обратно на исходную страницу, где изображение было показано.

Но оно по-прежнему показывает старое изображение даже после перенаправления и не отображает новое, пока я не обновлю страницу.

Я попытался просто использовать тег изображения и удалить метку времени ресурса после изображения, но оно по-прежнему отображает старое изображение, а также я попытался добавить метатеги, чтобы остановить кэширование в браузере, но не работает.

Как я могу решить эту проблему без обновления страницы?

Ответы [ 2 ]

5 голосов
/ 16 декабря 2009

Вероятно, это не самый лучший способ, но в прошлом я решил эту проблему, просто добавив метку времени к URL-адресу изображения с помощью JavaScript:

http://www.mysite.com/img/some_image.jpg?timestamp=12342312412

При следующей загрузке отметка времени устанавливается на текущее время, а URL-адрес отличается, поэтому браузер выполняет GET для изображения вместо использования кэшированной версии.

2 голосов
/ 16 декабря 2009

Используете ли вы вспомогательный тег rails image: image_tag в ваших представлениях?

Rails автоматически добавляет метку времени на основе даты последнего изменения файла изображения, что очень удобно, поскольку оно должно измениться, когда вы выполняете обрезку и записываете новое изображение.

Больше информации в документации: http://api.rubyonrails.org/classes/ActionView/Helpers/AssetTagHelper.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...