I am seeing strange behavior using includes. For example, if I request a javascript file (ending in .js) the headers set globally in the server block are not set. I was under the impression that if you set headers in the server block, ALL location blocks below inherit those headers.
See the following:
server {
...
add_header Strict-Transport-Security max-age=31556926;
add_header X-XSS-Protection "1; mode=block";
add_header X-Frame-Options DENY;
add_header X-Content-Type-Options nosniff;
include expires.conf;
...
}
# expires.conf
location ~* \.(?:ico|js|css|gif|jpe?g|png|xml)$ {
expires 7d;
add_header Pragma public;
add_header Cache-Control "public, must-revalidate, proxy-revalidate";
}
When requesting a .js file, the Pragma and Cache-Control headers are set, but all the headers set in the base server block are not. What is the fix here?