Force browser to refresh css, javascript, etc

前端 未结 16 1793
花落未央
花落未央 2020-11-29 19:16

I\'m developing a website based on Wordpress source code through XAMPP. Sometimes I change the CSS code, scrips or something else and I notice my browser takes time to apply

相关标签:
16条回答
  • 2020-11-29 19:48

    Make sure this isn't happening from your DNS. For example Cloudflare has it where you can turn on development mode where it forces a purge on your stylesheets and images as Cloudflare offers accelerated cache. This will disable it and force it to update everytime someone visits your site.

    0 讨论(0)
  • 2020-11-29 19:48

    I have decided that since browsers do not check for new versions of css and js files, I rename my css and js directories whenever I make a change. I use css1 to css9 and js1 to js9 as the directory names. When I get to 9, I next start over at 1. It is a pain, but it works perfectly every time. It is ridiculous to have to tell users to type .

    0 讨论(0)
  • 2020-11-29 19:48

    Try this:

    link href="styles/style.css?=time()" rel="stylesheet" type="text/css"
    

    If you need something after the '?' that is different every time the page is accessed then the time() will do it. Leaving this in your code permanently is not really a good idea since it will only slow down page loading and probably isn't necessary.

    I've found that forcing a style sheet refresh is helpful if you've made extensive changes to a page's layout and accessing the new style sheet is vital to having something sensible appear on the screen.

    0 讨论(0)
  • 2020-11-29 19:52

    This Firefox extension was the only solution I could get to work: https://addons.mozilla.org/en-us/firefox/addon/css-reloader/

    0 讨论(0)
  • 2020-11-29 19:55

    General solution

    Pressing Ctrl + F5 (or Ctrl + Shift + R) to force a cache reload. I believe Macs use Cmd + Shift + R.

    PHP

    In PHP, you can disable the cache by setting the expiration date to a time in the past with headers:

    header("Expires: Tue, 01 Jan 2000 00:00:00 GMT");
    header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
    header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0");
    header("Cache-Control: post-check=0, pre-check=0", false);
    header("Pragma: no-cache");
    

    Chrome

    Chrome's cache can be disabled by opening the developer tools with F12, clicking on the gear icon in the lower right corner and selecting Disable cache in the settings dialog, like this:

    enter image description here
    Image taken from this answer.

    Firefox

    Type about:config into the URL bar then find the entry titled network.http.use-cache. Set this to false.

    0 讨论(0)
  • 2020-11-29 19:58

    You can turn off caching with Firefox's web developer toolbar.

    0 讨论(0)
提交回复
热议问题