簡體   English   中英

我無法自動刷新瀏覽器並清除緩存

[英]i can't autorefresh the browser and clear cache

我從頭開始創建了一個 PHP 網站,每次在我的主機帳戶上上傳更改時,我都必須從瀏覽器設置中清除 chache/cockies。 我怎樣才能通過代碼做到這一點? 如果我進行其他更改,我不希望用戶自己執行此操作。 謝謝!

您需要發送正確的標頭以防止緩存。 對於純 PHP 生成的內容,在發送任何其他輸出之前,每頁發送一次這樣的內容將起作用-

<?php
  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");
?>

對於無法執行此操作的非編程生成的文件(圖像、.js 文件、.css 等),可以配置 Web 服務器以告訴客戶端限制緩存生存期。 當然,這取決於客戶是否遵循指示......

來自https://www.liquidweb.com/kb/how-to-configure-apache-2-to-control-browser-caching/

<IfModule mod_expires.c>
# Turn on the module.
ExpiresActive on
# Set the default expiry times.
ExpiresDefault "access plus 2 days"
ExpiresByType image/jpg "access plus 1 month"
ExpiresByType image/gif "access plus 1 month"
ExpiresByType image/jpeg "access plus 1 month"
ExpiresByType image/png "access plus 1 month"
ExpiresByType text/css "access plus 1 month"
ExpiresByType text/javascript "access plus 1 month"
ExpiresByType application/javascript "access plus 1 month"
ExpiresByType application/x-shockwave-flash "access plus 1 month"
ExpiresByType text/css "now plus 1 month"
ExpiresByType image/ico "access plus 1 month"
ExpiresByType image/x-icon "access plus 1 month"
ExpiresByType text/html "access plus 600 seconds"
</IfModule>

nginx和其他 http 服務器可以進行類似的配置 - 請參閱https://www.digitalocean.com/community/tutorials/how-to-implement-browser-caching-with-nginx-s-header-module-on-centos- 7

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM