¿Cómo evitar que los navegadores guarden en caché una imagen?

Tengo una imagen en mi sitio web que no quiero almacenar en caché. La imagen se utiliza como fondo en CSS, por lo que no puedo cambiar su nombre dinámicamente. Algunas ideas ?

Otra alternativa sería agregar una cadena aleatoria después de su archivo de imagen.


		      	

mnot tiene un buen tutorial de almacenamiento en caché que explicará cómo configurar los encabezados HTTP para solicitar que la imagen no se almacene en la memoria caché (recuerde que debe establecer los encabezados HTTP para la imagen, no el documento HTML).

Sin embargo, esta es una mala idea, ya que las imágenes tienden a ser relativamente gruesas, por lo que volver a descargarlas para cada página podría imponer una disminución significativa del rendimiento.

con apache no puedes lograr esto de 2 maneras diferentes:

con mod_headers:

  Header set Expires "Fri, 04 Aug 1978 12:00:00 GMT" Header set Cache-Control "no-cache, no-store, must-revalidate, max-age=0, proxy-revalidate, no-transform" Header set Pragma "no-cache"  

o con mod_expires:

  ExpiresActive On ExpiresByType image/png A0 ExpiresByType image/gif A0 ExpiresByType image/jpg A0 ExpiresByType image/jpeg A0  

Si no puede configurar las reglas de caché en Apache (como sugiere la respuesta de @David Dorvard, vea la parte que usa la directiva ), puede canalizar la imagen a través de un script PHP y establecer sus propios (no) encabezados de caché allí :

  

Esto debería obtener una imagen que no está almacenada en caché; énfasis en debería , ya que varios navegadores se rompen de forma diversa (IIRC IE6 lo guardó en caché de todos modos cuando se vincula como imagen de fondo, pero afortunadamente está a punto de desaparecer).

Tenga en cuenta que este enfoque simplista 1) boostá la carga en el servidor, ya que necesita iniciar PHP para la solicitud de imagen y 2) deshabilitar la descarga parcial en el script / imagen

Si se dirige a navegadores modernos, puede usar un archivo de Manifiesto HTML5: http://diveintohtml5.ep.io/offline.html#network