Set cache-control header in getInitialProps() in NextJs

I need to set Cache-Control header with a dynamic value in getInitialProps method. I tried the below.

if(context.res){
    context.res.setHeader('Cache-Control','My-Cache-Control');
    context.res.setHeader('My-Header','My-Value');
}

But it looks looks like NextJs is overriding the header value before sending the response. Below is the cache-control header value in response header in browser.

Cache-Control: no-store, must-revalidate
My-Header: My-Value

Let me know if anything is missing.

Upvotes: 5

Views: 8178

Answers (2)

Bertrand Marron
Bertrand Marron

Reputation: 22210

Cache-Control headers are overridden in development, so that pages do not get cached by the browser.

It will work in production (next build && next start).

Upvotes: 4

Fadi Abo Msalam
Fadi Abo Msalam

Reputation: 7187

as mentioned in this github bug

use res.setHeader()

res is a Node.js http.ServerResponse

Upvotes: 2

Related Questions