Evitar el almacenamiento en caché después de la actualización de la imagen de Paperclip

StackOverflow https://stackoverflow.com/questions/1270443

  •  13-09-2019
  •  | 
  •  

Pregunta

Estoy subiendo imágenes a almacenamiento S3 utilizando joya clip. ¡Sube con éxito.

En mi aplicación, un usuario puede cambiar su foto de perfil. Si el usuario hace el cambio de perfil de la foto, la nueva imagen conseguirá cargado correctamente. El problema es que el navegador mostrará fotografía anterior sólo después de la subida. Sólo después de que una fuerza de refresco por el pulsando Ctrl + F5 será la nueva presentación de la imagen.

Nota: imagen se carga utilizando el formulario puesto. Supongo que está relacionado con el almacenamiento en caché, pero no tengo idea de dónde puedo cambiar mi código. Por favor, ayudarme a esto. Gracias.

¿Fue útil?

Solución

¿Qué propiedad del objeto de imagen ¿Está utilizando como src de la imagen? Si utiliza user.image.url (asumiendo que tiene un modelo User y que se llama image del campo Paperclip), entonces la URL de la imagen en S3 debe tener un número en la cadena de consulta que actúa para detener cualquier almacenamiento en caché para que pueda ver la imagen actualizada de inmediato. Por ejemplo, la URL de la imagen debe cambiar de

http://s3.amazonaws.com/bucket/images/5/original/pic.gif?1250184309

a

http://s3.amazonaws.com/bucket/images/5/original/pic.gif?1250184348

que debe detener el almacenamiento en caché del navegador la imagen.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top