Stop caching images in views, force reload of jquery image slideshow when images are externally updated In D7, I have a panel that contains a view that contains a jquery image slideshow.

Every day, the images that compose the slideshow are updated by a cron job---ie, every day's new images override the old ones (they are given the same names).  So, say I have image1.png, image2.png and image3.png---every day these files are overwritten with new pictures.

I have added the following anti-cache protections in my meta section to both the page/panel and the view itself:

&lt;meta http-equiv="Cache-Control" content="no-cache, must-revalidate"&gt; 
&lt;meta http-equiv="Pragma" content="no-cache"&gt; 
&lt;meta http-equiv="Expires" content="0"&gt; 
&lt;meta http-equiv="refresh" content="300"&gt; 


I have also turned off all caching on the server of any duration, and of javascript/css.  I also run the external cron with the cron-key after the image overwrite occurs. 

Yet it seems that the only way my slideshow ever updates to reflect the new content of the image files is when I do an F5 or ctrl+r hard reload.

I don't want to ask my users to do this, so how can I force a reload and cache-clearing beyond the measures I've already taken above to get the browser to recognize that the images in the slideshow have changed on the server?

(I saw this recent similar post, How to tell if an image was updated, but it seems to apply to images created by Drupal, rather than created externally and pumped in.)

Update:

I have also added, in light of @mikeytown2's comment below, the following to my .htaccess file:

 # Requires mod_expires to be enabled.
&lt;IfModule mod_expires.c&gt;
  # Enable expirations.
  ExpiresActive On

  # Cache all files for 2 weeks after access (A).
  # ExpiresDefault A1209600
  ExpiresDefault A600 #NOTE, this means ALL sites expire in 5 minutes by default!

  &lt;FilesMatch \.php$&gt;
    ExpiresActive Off
  &lt;/FilesMatch&gt;

&lt;/IfModule&gt;


The .htaccess is in my public folder.  

Even with this, which should be telling Drupal that all caches from my page expire at 5 minutes, I am still not seeing an update when new images replace old ones of the same name in my slideshow.

I have made sure to completely clear my cache and await an external cron, and the old images remain cached in the browser and/or server.
with firebugs net panel click on image1.png, select cache and get this information

Last Modified
Last Fetched
Expires


Your currently setting the html page to not be cached in the browser (which is already the case by default). If the images are hosted on your server, you need to adjust your apache .htaccess rules and have these images not be cached. Drupal's default htaccess uses a 2 week cache for everything other than php scripts. You need to make an exception for your images with filesmatch. Example:

# Requires mod_expires to be enabled.
&lt;IfModule mod_expires.c&gt;
  # Match image1.png, image2.png, etc...
  &lt;FilesMatch ^image\d+\.png$&gt;
    # Disable browser caching.
    ExpiresActive Off
  &lt;/FilesMatch&gt;
&lt;/IfModule&gt;


If the images are not hosted on your server simply append a question mark with the current unix time to the end of the image src. Example:

image1.png?1317717247