簡體   English   中英

express.static()是否在內存中緩存文件?

[英]Does express.static() cache files in the memory?

在ExpressJS for NodeJS中,我們可以執行以下操作:

app.use(express.static(__dirname + '/public'));

提供所有靜態CSS,JS和圖像文件。 我的問題是這些:

1)當我們這樣做時,Express會自動將文件緩存在服務器的內存中,還是每次提供一個資源時都從硬盤讀取?

2)當我們這樣做時,Express是否默認使用ETag將資源保存在客戶端的硬盤上,或僅保存在客戶端的內存中?

  1. 靜態中間件不進行服務器端緩存。 它允許您執行兩種客戶端緩存方法:ETag和Max-Age:

如果瀏覽器看到帶有頁面的ETag ,它將緩存它。 下次瀏覽器加載頁面時,它會檢查ETag編號的更改。 如果文件完全相同,那么它的ETag也是如此 - 服務器以HTTP 304(“未修改”)狀態代碼響應,而不是再次發送所有字節並節省一堆帶寬。 Etag默認處於啟用狀態,但您可以將其關閉:

app.use(express.static(myStaticPath, {
  etag: false
}))

Max-age將max-age設置為一段時間,因此瀏覽器只會在一天后請求該資源。

app.use(express.static(myStaticPath, {
  maxAge: '5000' // uses milliseconds per docs
}))

有關詳細信息,請閱讀本文

  1. 默認情況下,它的硬盤驅動器上,但有人可以使用類似於

暫無
暫無

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

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