[英]How to create a regex in nginx to break the browser cache?
我是一名程序員,所以不確定我是否在做夢,如果我認為我可以在應該是配置文件的地方做這種邏輯。 我需要的只是一個 nginx 響應,這樣包含 /cacheXXX 的請求應該去掉 url 的那部分。
所以:
/cache123/editor/editor.js -> /editor/editor.js
/cache456/admin/editor.css -> /admin/editor.css
/cache987/editor/editor.js -> /editor/editor.js
所以其他任何事情都應該被忽略,即:
/hello/editor/editor.js -> /hello/editor/editor.js
這里的關鍵是,如果 url 匹配:
/緩存XXX
然后剝離該部分並返回 rest。
nginx 位置條目會是什么樣子來實現這個外觀?
關於這一點的上下文,我試圖通過更改資源的路徑來為更新的資源提供新的 url,而不是更改不能保證的 url 參數來打破瀏覽器緩存。
一種解決方案是對 select 以/cache
開頭的 URI 使用正則表達式位置,並提取文件名部分以返回正確的文件。
例如(假設root
在某處定義):
location ~ ^/cache[0-9]+(/.*) {
try_files $1 =404;
}
正則表達式location
是按順序求值的,所以它在配置文件中的相對 position 很重要。 有關詳細信息,請參閱此文檔。
您還可以使用重寫規則,例如:
rewrite ^/cache[0-9]+(/.*) $1 last;
有關詳細信息,請參閱此文檔。
為了獲得最大效率,請將任一技術包裝在前綴location
中,例如:
location ^~ /cache {
rewrite ^/cache[0-9]+(/.*) $1 break;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.