當前位置:首頁 » 文件管理 » 純靜態頁面如何設置緩存

純靜態頁面如何設置緩存

發布時間: 2023-03-21 13:11:32

① 如何解決網站靜態頁緩存問題

使用靜態頁緩存提升網站性能,變化很少的靜態資源可以設置客戶端緩存時間,減少請求。
如果一定要不要靜態頁緩存,可以設置頁面不緩存靜態頁面,這個要根據實際的WEB應用服務進行設置了。

② 關於html緩存設置

通過HTTP的META設置expires和cache-control

指令不區分大小寫,並且具有可選參數,可以用令牌或者帶引號的字元串語法。多個指令以逗號分隔。

客戶端可以在HTTP請求中使用的標准 Cache-Control 指令。

Cache-Control: max-stale[=<seconds>]
Cache-Control: min-fresh=<seconds>
Cache-control: no-cache
Cache-control: no-store
Cache-control: no-transform
Cache-control: only-if-cached

伺服器可以在響應中使用的標准 Cache-Control 指令。

Cache-control: no-cache
Cache-control: no-store
Cache-control: no-transform
Cache-control: public
Cache-control: private
Cache-control: proxy-revalidate
Cache-Control: max-age=<seconds>
Cache-control: s-maxage=<seconds>

拓展緩存指令不是HTTP緩存標準的一部分,使用前請注意檢查 兼容性 !

Cache-control: immutable
Cache-control: stale-while-revalidate=<seconds>
Cache-control: stale-if-error=<seconds>

public
表明響應可以被任何對象(包括:發送請求的客戶端,代理伺服器,等等)緩存。

private
表明響應只能被單個用戶緩存,不能作為共享緩存(即代理伺服器不能緩存它)。

no-cache
強制所有緩存了該響應的緩存用戶,在使用已存儲的緩存數據前,發送帶驗證器的請求到原始伺服器

only-if-cached
表明如果緩存存在,只使用緩存,無論原始伺服器數據是否有更新

max-age=<seconds>
設置緩存存儲的最大周期,超過這個時間緩存被認為過期(單位秒)。與Expires相反,時間是相對於請求的時間。

s-maxage=<seconds>
覆蓋max-age 或者 Expires 頭,但是僅適用於共享緩存(比如各個代理),並且私有緩存中它被忽略。

max-stale[=<seconds>]
表明客戶端願意接收一個已經過期的資源。 可選的設置一個時間(單位秒),表示響 應不能超過的過時時間。

min-fresh=<seconds>
表示客戶端希望在指定的時間內獲取最新的響應。

must-revalidate
緩存必須在使用之前驗證舊資源的狀態,並且不可使用過期資源。

proxy-revalidate
與must-revalidate作用相同,但它僅適用於共享緩存(例如代理),並被私有緩存忽略。

immutable
表示響應正文不會隨時間而改變。資源(如果未過期)在伺服器上不發生改變,因此客戶端不應發送重新驗證請求頭(例如If-None-Match或If-Modified-Since)來檢查更新,即使用戶顯式地刷新頁面。在Firefox中,immutable只能被用在 https:// transactions.

發送如下指令可以關閉緩存。此外,可以參考Expires 和 Pragma 標題。

對於應用程序中不會改變的文件,你通常可以在發送響應頭前添加積極緩存。這包括例如由應用程序提供的靜態文件,例如圖像,CSS文件和JavaScript文件。另請參閱Expires標題。

緩存主要兩個策略 強制緩存 ,協商緩存
強制緩存就是設置本地資源html img js等等緩存多長時間 超過時間就去伺服器端取。
協商緩存就是每次都詢問伺服器資源是否已經過期 沒有過期就使用緩存 已經過期就從伺服器上重新取。

緩存流程可以分三個階段 本地緩存,協商緩存 ,緩存失敗

現在的vue項目里都不是這樣緩存的 我個人感覺這是在靜態頁面時的緩存辦法
現在都是webpack打包時通過 hash chunkhash contenthash來決定緩存方式 主要就是在請求的文件名稱後面加一個id 來判斷文件是否已經更新。

③ 關於php如何實現靜態緩存問題如下

樓主,你所說的這個的實現則是
+
根據文件來判斷的,每個文件在生成的時候都有一個創建時間,
+
而在資料庫的設計中,則是存在這一個修改時間,
+
也就是用資料庫來存儲和計算這兩個值的差值或者是是否相同,
+
再來判斷是否要重新生成實質性的HTML文件..
根據樓主的描述,大致的解決思路如上..
而有關
ob_start
的理解,則是:
+
ob_start
先將數據放入
ob
緩存
+
ob_flush
再將緩存數據輸出到程序緩存中
+
ob_end_clean
清空緩存並且關閉緩存
+
程序輸出
而在頁面靜態化中,緩存的方法有:
+
ob緩存
+
smarty
緩存
+
ThinkPHP
緩存
+
模版緩存
靜態化又分為:
+
實質的靜態化
+
偽靜態化
這是本人的理解,樓主可以在此基礎上加強,形成自己的理解..

④ apache伺服器下的靜態頁面如何緩存

Apache有緩存模塊的。 例如:

LoadMole mem_cache_mole moles/mod_mem_cache.so
<IfMole mod_cache.c>
<IfMole mod_mem_cache.c>
CacheEnable mem /
# cache 40MB
MCacheSize 80960
MCacheMaxObjectCount 21000
MCacheMaxStreamingBuffer 65536
MCacheMinObjectSize 1
MCacheMaxObjectSize 74000
###GDSF 基於緩存命中率和文檔大小計算優先順序。在必要時,優先順序最低的文檔被移出緩存
##MCacheRemovalAlgorithm GDSF
#LRU 指定最長時間沒有用到的對象將在必要的時候移出緩存
MCacheRemovalAlgorithm LRU
</IfMole>

⑤ 如何設置靜態內容緩存時間

一、打開IIS,滑鼠右鍵你要設置的網站,然後「屬性」

(第一步操作)

二、選擇「HTTP頭」選項卡,勾選「啟用內容過期」,選中「立即過期」,然後「確定」。

(第二步操作)

解釋一下這一步的效果。設置此網站所有內容都不進行緩存,也就是每次訪問都全新載入。

三、展開網站,找到要進行緩存的目錄。(一般是存放上傳文件、圖片、JS等文件的目錄)然後「滑鼠右鍵」----「屬性」

(第三步操作)

四、選擇「HTTP頭」選項卡,勾選「啟用內容過期」,選中「此時間段後過期」,設置過期時間,然後「確定」

(第四步操作)

OK,這時候已經設置成功了。

⑥ 如何設置靜態網站靜態內容緩存時間

網路一下,靜態內容緩存時間代碼,然後加上就行了

熱點內容
怎麼查看我的wifi密碼 發布:2024-04-25 18:54:43 瀏覽:756
fckeditorforjava 發布:2024-04-25 18:50:27 瀏覽:623
優酷上傳視頻需要多久 發布:2024-04-25 18:33:05 瀏覽:675
inf12編譯器 發布:2024-04-25 18:15:39 瀏覽:99
撲克總督3安卓哪裡下載 發布:2024-04-25 18:10:02 瀏覽:395
什麼網站是php 發布:2024-04-25 18:03:42 瀏覽:221
java教程免費下載 發布:2024-04-25 18:02:01 瀏覽:443
i西安編程 發布:2024-04-25 16:55:35 瀏覽:263
核磁看壓縮 發布:2024-04-25 16:37:22 瀏覽:432
訪問不上光貓 發布:2024-04-25 16:13:44 瀏覽:319