nginx 配置瀏覽器不緩存文件 每次都會從服務器 請求新的文件

目錄

    • 解決問題
    • 方法
    • 說明
  • 測試
    • html環境
    • js
    • 環境
    • 第一步
    • 然后修改內容 打開帶有js緩存的頁面
    • 強制刷新
  • 配置nginx 每次打開頁面都會重新請求index.js 文件
    • 重啟nginx
    • 再次修改index.js
  • 總結
  • 設置為全局

解決問題

適用于實時更新數據的,網頁
可以讓用戶每次都是重新請求,新的index.html
防止過期文件,影響用戶體驗
有時候更新了js 文件 ,但是用戶的瀏覽器則不會立即更新js文件的緩存
從而造成用戶體驗不佳
優點,每次都能打開最新的頁面
缺點 ,會增加服務器負荷


方法

要在 Nginx 中禁用緩存,你需要在相關的 location 配置中添加禁用緩存的指令。通常你可以使用 Cache-Control 和 Pragma 頭來達到這個目的。

以下是如何在 Nginx 中禁用緩存的示例配置:

server {# ... 其他配置 ...location / {add_header Cache-Control "no-cache, no-store, must-revalidate";add_header Pragma "no-cache";add_header Expires "0";# ... 其他配置 ...}
}

說明

在這個示例中,我們在根路徑的 location 配置中添加了三個頭信息:

Cache-Control: no-cache - 表示不緩存
Cache-Control: no-store - 表示不存儲緩存
Cache-Control: must-revalidate - 表示客戶端必須驗證資源是否過期
Pragma 頭通常用于向舊版本的 HTTP/1.0 客戶端發送指令。添加 “no-cache” 值會防止緩存文件。

Expires 頭的值設置為 “0” 表示資源已經過期。

通過這些配置,Nginx 會指示瀏覽器不要緩存這些文件,而是每次都向服務器發起請求獲取最新的內容。完成配置后,記得重新加載 Nginx 以使配置生效。


希望對大家有所幫助

測試

準備一個環境

html環境

<!DOCTYPE html>  
<html lang="en">  
<head>  <meta charset="UTF-8">  <meta http-equiv="X-UA-Compatible" content="IE=edge">  <meta name="viewport" content="width=device-width, initial-scale=1.0">  <title>寫入句子示例</title>  
</head>  
<body>  <div id="sentence"></div>  <!-- 這里引入了一個js 文件 --><script src='./index.js'></script>  
</body>  
</html>

js

document.getElementById("sentence").innerHTML = "這是一句話。"; 

環境

實驗瀏覽器 谷歌

第一步

配置好js 之后
打開頁面
在這里插入圖片描述
可以看到 js 已經生效了
在這里插入圖片描述

然后修改內容 打開帶有js緩存的頁面

再這里對js 文件進行修改
在這里插入圖片描述

在這里插入圖片描述
如果時間短的話則不會重新加載index.js
文件
所以這里沒有刷新

強制刷新

當我使用 強制刷新或者清理緩存之后 再打開 就已經修改了
在這里插入圖片描述

配置nginx 每次打開頁面都會重新請求index.js 文件

在域名 的nginx配置文件中添加如下代碼即可
在這里插入圖片描述

重啟nginx

# 檢查nginx 配置是否正常
nginx -t
# 重啟nginx
nginx -s reload

在這里插入圖片描述
在這里插入圖片描述

再次修改index.js

在這里插入圖片描述

在這里插入圖片描述
可以看到 訪問到的就是我們修改的內容沒有重新請求
在這里插入圖片描述

再次修改
在這里插入圖片描述
也是請求了新的js 沒有使用緩存js
在這里插入圖片描述

總結

修改之前 需要全局刷新,才會重新請求index.js 文件
修改之后,不用全局刷新 ,就可以重新請求到最新的 index.js

設置為全局

http {  # ... 其他配置 ...  map $http_host $cache_control_header {  default "no-cache, no-store, must-revalidate";  }  map $http_host $pragma_header {  default "no-cache";  }  map $http_host $expires_header {  default "0";  }  server {  # ... 其他配置 ...  location / {  add_header Cache-Control $cache_control_header;  add_header Pragma $pragma_header;  add_header Expires $expires_header;  # ... 其他配置 ...  }  }  # ... 可能還有其他 server 塊 ...  
}

在這里插入圖片描述


本章完結

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/715896.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/715896.shtml
英文地址,請注明出處:http://en.pswp.cn/news/715896.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C語言中的套娃——函數遞歸

目錄 一、什么是遞歸 1.1.遞歸的思想 1.2.遞歸的限制條件 二、舉例體會 2.1.求n的階乘 2.2.順序打印整數的每一位 2.3.斐波那契數列 三、遞歸與迭代 一、什么是遞歸 在學習C語言的過程中&#xff0c;我們經常會跟遞歸打交道&#xff0c;什么是遞歸呢&#xff1f;它其實…

LNMP 架構

環境準備&#xff1a;lnmp 需要安裝 nginx mysql php 論壇/博客 軟件 使用LNMP架構搭建 論壇 1. 關閉防火墻和和核心防護 systemctl disable --now firewalld setenforce 0 2. 編譯安裝 nginx 安裝依賴包 yum -y install pcre-devel zlib-devel gcc gcc-c make 創建…

在Redhat 7 Linux上安裝llama.cpp [ 錯誤stdatomic.h: No such file or directory]

前期準備 在github上下載llama.cpp或克隆。 GitHub - ggerganov/llama.cpp: LLM inference in C/C ? git clone https://github.com/ggerganov/llama.cpp.gitcd llama.cpp 執行make命令編譯llama.cpp make 在huggingface里下載量化了的 gguf格式的llama2模型。 https:/…

每日一練:筆試題復盤-LeeCode原題-判斷二叉樹兩數之和-->找到滿足二叉樹兩數之和的所有路徑

用Java實現&#xff0c;給定一個二叉樹root和一個值 sum &#xff0c;找到從根節點到葉子節點的節點值之和等于 sum 的路徑。 1.該題路徑定義為從樹的根結點開始往下一直到葉子結點所經過的結點 2.葉子節點是指沒有子節點的節點 3.路徑只能從父節點到子節點&#xff0c;不能從子…

Compiling from source on UNIX(cmake doxygen ant maven ccache)

前言 源碼鏈接 cmake-3.18.0 https://cmake.org/files/v3.18/cmake-3.18.0.tar.gzdoxygen-1.10.0 https://www.doxygen.nl/files/doxygen-1.10.0.src.tar.gzapache-ant-1.10.8-bin https://archive.apache.org/dist/ant/binaries/apache-ant-1.10.8-bin.tar.gzapache-maven-3…

#WEB前端(表單)

1.實驗&#xff1a; form、input、label 登錄界面&#xff0c;表單填寫界面 2.IDE&#xff1a;VSCODE 3.記錄&#xff1a; 4.代碼&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name&q…

RedisTemplate中opaForValue.set的注意之處

問題 原本寫了一個小項目&#xff0c;想通過redis緩存實現登錄退出功能&#xff0c;結果出現了莫名奇妙的問題 代碼如下&#xff1a; 報錯&#xff1a; 經過多次調試之后我發現是opsForValue.set(key,value,expireTime)這行代碼的問題&#xff0c;沒有指定過期時間的單位&…

備戰藍橋杯---動態規劃之懸線法

Em...屬于一知道就會&#xff0c;不知道的話比較難想。 我們先看題&#xff1a; 我們不妨把1抽象成一個平面上的點&#xff0c;因此可以變成這一幅圖&#xff1a; 我們假設每一個點被向上牽拉了一根線&#xff1a; 顯然&#xff0c;每一條懸線都有可能成為邊界限制&#xff0c…

JS值和引用

在javaScript中&#xff0c;數據類型整體上可以分為兩大類&#xff1a;基本數據類型和引用數據類型 基本數據類型&#xff1a; string , symbol , number , boolean , undefined , null 引用數據類型&#xff1a; object 1.簡單值&#xff08;原始值&#xff09; 由于簡單…

職業生涯知識回顧-關于抽象類和接口的思考

抽象類和接口是兩個很容易產生疑惑的概念&#xff0c;分不清它們的使用場景&#xff0c;其實只要記住兩點就比較好理解&#xff1a; 接口是對行為的抽象抽象類是對子類有哪些屬性和行為的抽象 當你需要對一個類有哪些行為進行約束時&#xff0c;使用接口&#xff1b;需要為其…

Bulingbuling - 《歷史的教訓》 [ The Lessons of History ]

《歷史的教訓》 兩位當代最偉大思想家的著名論文集&#xff0c;匯集了 5000 多年的歷史 作者&#xff1a;威爾-杜蘭特和阿里爾-杜蘭特 The Lessons of History The celebrated collection of essays compiling over 5,000 years of history by two of the greatest thinkers …

Spring Boot項目中不使用@RequestMapping相關注解,如何動態發布自定義URL路徑

一、前言 在Spring Boot項目開發過程中&#xff0c;對于接口API發布URL訪問路徑&#xff0c;一般都是在類上標識RestController或者Controller注解&#xff0c;然后在方法上標識RequestMapping相關注解&#xff0c;比如&#xff1a;PostMapping、GetMapping注解&#xff0c;通…

Siamrpn++論文中文翻譯(詳細!)

SiamRPN: Evolution of Siamese Visual Tracking with Very Deep Networks SiamRPN&#xff1a;具有非常深度網絡的Siamese視覺跟蹤的進化 【siamrpn論文地址】 https://arxiv.org/abs/1812.11703 摘要 基于Siamese網絡的跟蹤器將跟蹤表示為目標模板和搜索區域之間的卷積特征…

【STA】多場景時序檢查學習記錄

單周期路徑 建立時間時序檢查 在時鐘的有效沿到達觸發器之前&#xff0c;數據應在一定時間內保持穩定&#xff0c;這段時間即觸發器的建立 時間。滿足建立時間要求將確保數據可靠地被捕獲到觸發器中。 建立時間檢查是從發起觸發器中時鐘的第一個有效沿到捕獲觸發器中時鐘后面…

理解大模型的5個關鍵公式

理解大模型的5個關鍵公式_嗶哩嗶哩_bilibili PPT&#xff1a;https://link.excalidraw.com/p/readonly/aBWlNjEckdUlrszwwo6V

基于springboot+vue的社區醫院管理系統

博主主頁&#xff1a;貓頭鷹源碼 博主簡介&#xff1a;Java領域優質創作者、CSDN博客專家、阿里云專家博主、公司架構師、全網粉絲5萬、專注Java技術領域和畢業設計項目實戰&#xff0c;歡迎高校老師\講師\同行交流合作 ?主要內容&#xff1a;畢業設計(Javaweb項目|小程序|Pyt…

chatgpt-3的文章生成器有哪些?可以批量生成文章的生成器

GPT-3&#xff08;Generative Pre-trained Transformer 3&#xff09;作為人工智能領域的一項重大突破&#xff0c;開啟了新一代的文本生成技術。同時市面上也涌現出了一些GPT-3文章生成器&#xff0c;為用戶提供了快速、高效地生成各種類型文章的工具。本文將介紹一些中國的GP…

unity-unity2d基礎操作筆記(三)0.5.000

目標是:牢記以下137條操作,越級上升到中級階段 unity-unity2d基礎操作筆記(三) 一百零一、如何操作一個游戲物體由多個部分組成的動畫一百零二、如何使用rigidbody 2d進行物體移動一百零三、獲取游戲物體身上的組件方法一百零四、代碼控制物體朝向一百零五、不使用插件,純…

C#上位機調試經驗

1.使用Visual Studio的遠程工具 因為上位機軟件安裝在工控機上&#xff0c;不方便調試。如果直接把代碼放在工控機上&#xff0c;又不太安全。 可以在工控機上安裝一個Visual Studio的遠程工具&#xff0c;把隨身帶的筆記本電腦通過網線插在工控機上 這樣可以在筆記本上使用…

s3cmd工具使用

1. 安裝s3cmd工具 [roottestserver01 ~]# yum install s3cmd 2. 配置s3cmd, 按提示輸入相應的ak&#xff0c;sk&#xff0c;endpoint等信息 [roottestserver01 ~]# s3cmd --configure 3. s3cmd使用 [roottestserver01 ~]# s3cmd mb s3://abc &#xff08;創建一個桶&am…