簡體   English   中英

如何關閉服務器和瀏覽器上的 PHP 頁面緩存?

[英]How to Turn off Caching of PHP Pages on Server and Browser?

我不確定 php 頁面的緩存來自哪里。 到目前為止,我已經禁用了緩存;

Chrome的開發者工具>網絡>禁用緩存;

Debian 的 \\opt\\php73\\etc\\php73.ini 與;

 opcache.enable=0
 opcache.enable_cli=0

我已經添加到我的服務器條目的末尾;

fastcgi_cache_bypass $is_args;
  fastcgi_no_cache $is_args;

我在 php 腳本的頂部有這個標題;

 header("Cache-Control: no-cache");

但我仍然無法弄清楚緩存來自哪里。

有人可以推薦我可以看的其他地方嗎?

如果您嘗試使用 PHP 停止緩存網頁,我使用以下代碼

//Minimize caching so admin area always displays latest statistics
header("Expires: Mon, 26 Jul 1997 05:00:00 GMT");
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
header("Pragma: no-cache");

雖然沒有什么是真正完整的證據,因為許多 CSS 和其他 JS 文件是獨立於 PHP 緩存的,並且在更新后需要刷新才能顯示,但還有其他方法可以解決這個問題。

我使用的一個示例是對文件進行哈希處理(使用 php):

$specific_page = '/assets/javascripts/pages/javascript.js';
if(file_exists($specific_page)) {
    $html .= '<script src="'.$specific_page.'?v='.hash_file('crc32',$specific_page).'"></script>';
}

這將保留緩存的文件,直到文件被更改。 當文件更改時,它會更改哈希值,從而找到新的更新文件(因為 URL 在技術上已更改)。

同樣,在防止客戶端緩存方面,沒有什么是真正完全的證據。

暫無
暫無

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

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