0

I have a web page that over_writes a CSS file when the page admin changes a few attributes through a web form and a database table. My problem is that the browser sometimes caches the old file and ignores the new version. It has been suggested to me that I should use a file versioning scheme that would basically change the name of the file so that I would never have to worry about the browser caching the old version. Is there any other way around this problem besides the versioning scheme?

  • Google "cache buster". – Barmar Mar 03 '17 at 03:09
  • Are you still in development? In that case, you could simply tell the testers to force a cache refresh (`CTRL`+`SHIFT`+`R` in most browsers). Of course, this won't be feasible in production. – domsson Mar 03 '17 at 03:09
  • Possible duplicate of [How to force page not to be cached in PHP?](http://stackoverflow.com/questions/1907653/how-to-force-page-not-to-be-cached-in-php) – Louis Loudog Trottier Mar 03 '17 at 03:24

1 Answers1

0

When including your CSS file in the HTML header, you could simply add a parameter to the query string:

<link rel="stylesheet" href="style.css?v=2">

In your case, you could increment this number programmatically every time the page admin changes something (assuming you have set $cssVersion somewhere):

<link rel="stylesheet" href="style.css?v=<?php echo $cssVersion; ?>">

You would have to store $cssVersion in a database column or in a file.

antoineMoPa
  • 854
  • 10
  • 20