Search code examples
htmlcachingbrowserhyperlink

HTML link that bypasses cache?


I have a file that I link to from my website like

<a href="http://example.com/myfile.txt>View!</a>

However, this file changes very frequently and when the link is clicked, the browser loads the cached version of the file, not the actual file. Is there a way so that clicking on that link will bypass the cache for that page?

Something nice like <a bypassCache href=""> would be wishful thinking.


Solution

  • Something nice like would be wishful thinking.

    Indeed, there is something you can do from within the link: Add a random GET parameter.

    <a href="http://example.com/myfile.txt?a=193834923283943842923">View!</a>
    

    You could use JavaScript (or of course a server-side scripting language like PHP) to do this on a dynamic basis.

    However, the far superior way would be to configure the text file's caching headers correctly in the first place on server side. Stealing the header info from Best way to disable client caching, a .htaccess file like this should work:

    <Files myfile.txt>
    FileETag None
    <IfModule mod_headers.c>
    Header unset ETag
    Header set Cache-Control "store, no-cache, must-revalidate, post-check=0, pre-check=0"
    Header set Pragma "no-cache"
    Header set Expires "Sun, 19 Nov 1978 05:00:00 GMT"
    </IfModule>
    </Files>