[英]azure cdn purge not refreshing cached content
我有一個連接到Blob存儲的Azure CDN(Verizon,高級版)。 根據本教程的第6步,我有2條規則。 這些規則旨在在調用CDN的根時強制CDN提供“ index.html”。 它們可能與該問題相關,也可能與該問題無關,但是在步驟6中對其進行了如下描述:
我最初將文件上傳到Blob存儲,能夠通過CDN命中它們(證明上述規則正常工作),然后更改了本地文件(調試)以上傳到Blob存儲。 在更新了Blob存儲上的所有文件並手動選中“全部清除”選項后清除CDN端點后,CDN為我提供了舊文件,而直接訪問Blob存儲時為我提供了新文件。 似乎每個文件都會發生這種情況(即使直接擊中文件,而不僅僅是index.html)。 等待約10小時,清除瀏覽器緩存並嘗試使用以前從未使用過的訪問CDN的瀏覽器后,仍然會發生這種情況。
有人知道會發生什么嗎? 它緩存在我的網絡和CDN端點之間的某個位置嗎? 我覺得我可能缺少一些非常簡單的東西...
編輯1:我有另一個Verizon(非高級)CDN連接到相同的存儲容器,並且它在清除后會拾取正確的文件; 但是,即使現在(24小時后),高級CDN也不提供更新的文件。
編輯2:稱為Microsoft對Azure的支持,他們花了大約6個小時進行調查,但無濟於事。 我們最終再次嘗試清除,現在已發送更新的文件。 仍然不確定是什么問題。
在與Microsoft和Verizon Digital Media支持人員合作數周之后,他們終於找到了解決方案。
為了避免干擾清除過程,最簡單的方法是在規則的“功能”部分之前實現以下“ IF”語句:
IF | 要求標題通配符| 姓名| 用戶代理| 不匹配| 價值觀| ECPurge / * | 忽略大小寫(已選中)
對於使用清除用戶代理發出的請求,此if語句將完全跳過此規則,從而允許該請求正常訪問CDN。
我還發現,如果您分別清除每個文件,例如,清除時將/css/main.css放在“內容路徑”中,而不是“全部清除”,它將起作用
現在一切正常嗎? 我發現您的規則可能比您需要的更為復雜。 如果目標只是將根“ /”重寫為/index.html,則這是您唯一需要的規則:
如果始終是URL重寫-來源:“ /”; 目標“ /index.html”
10/14/2019-使用類似的設置(Azure CDN / Blob-Static-Site / Verizon),我也遇到了緩存問題。 我碰巧只有1個URL重寫規則。 對我來說解決的是設置有關緩存/最大年齡的后續規則。
這是我的操作方式:Azure門戶-> CDN配置文件->單擊您的配置文件(“概述”部分)
它說此規則可能需要4個小時才能生效,對我來說大約是2個小時。
最后,對於這種方法,規則的順序應該無關緊要,但是對於上面的重寫規則,請記住,規則確實允許您優先上下移動它們。 對我來說,我有,Https首先重定向,URL重寫(對於“ React-routing”)第二。 最后,最后強制緩存刷新。
*注意:這是一個平衡,因為清除對我不起作用,您希望在發布后更新靜態(應用程序/站點),但是您也不希望有大量不必要的流量來刷新緩存。 對於我的開發服務器,我安頓了5分鍾。 我認為制作將需要1個小時...尚未決定。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.