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

前端 未结 1 1783
佛祖请我去吃肉
佛祖请我去吃肉 2021-01-03 18:29

In ExpressJS for NodeJS, we can do the following:

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

to serve all the static CSS, JS, and im

相关标签:
1条回答
  • 2021-01-03 18:58
    1. The static middleware does no server-side caching. It lets you do two methods of client-side caching: ETag and Max-Age:

    If the browser sees the ETag with the page, it will cache it. The next time the browser loads the page it checks for the ETag number changes. If the file is exactly the same, and so is its ETag - the server responds with an HTTP 304("not modified") status code instead of sending all the bytes again and saves a bunch of bandwidth. Etag is turned-on by default but you can turn it off like this:

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

    Max-age is will set the max-age to some amount of time so the browser will only request that resource after one day has passed.

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

    For more details you can read this article

    1. By default it's on the hard-drive, but someone can use something like this
    0 讨论(0)
提交回复
热议问题