簡體   English   中英

我該如何破壞緩存,以便用戶獲得所有新的靜態文件(例如style.CSS,main.js)?

[英]How do I bust the cache so users get all the new static files (eg. style.CSS, main.js)?

我正在將一個全新的網站重新設計部署到現有域上。 我將在12:00 AM用新文件手動替換所有文件,但是如何確保用戶不會獲得舊網站的緩存版本(從而破壞了所有內容)?

另外,如何更改站點地圖,以便替換Google上的舊站點地圖?

有兩種方法,您可以使用webpack之類的工具,也可以使用gulp中的插件,grunt會為生成的文件名添加hash

所以文件名會像這樣

someabc.RandomAlphanumeric.js

其中RandomAlphanumeric隨機生成的哈希

如果您不使用任何構建工具,則可以將文件命名為

<script type="text/javascript" src="/folder/js/someFile.js?v1"></script>

注意使用? 通常在文件名后附有時間戳

有幾種破壞緩存的方法。

最簡單的方法是將過期標頭添加到該類型的文件。 這可以在Apache配置中完成,如下所示:

<FilesMatch "\.(gif|jpg|js|css)$">
    ExpiresActive On
    ExpiresDefault "access plus 10 years"
</FilesMatch>

您還可以在每種資源的URL中使用新的查詢字符串值。

另一個選項是路由到更新文件的文件名中的更新版本號。

您需要等待Google的網絡抓取工具為更改編制索引。 這不是您可以控制的東西。

如果要重新部署整個站點,我懷疑您想向每個文件添加?v1。 而且由於您的文件已被緩存,所以我認為這將不會非常有效。 我將在服務器級別查看一個選項。 大多數主機都可以選擇禁用或刷新緩存。 那是你最好的選擇!

暫無
暫無

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

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