我有一个单页应用程序,我不希望index.html文件被缓存(因为如果有一个新版本,用户将无法获得它,因为他们的浏览器将获得缓存的index.html,该文件链接到旧的JavaScript文件,编译器输出)。
我定义了我的模板,看起来像这样:
map $sent_http_content_type $expires {
text/html epoch;
default 1y;
}
server {
listen $PORT;
...
location / {
add_header Access-Control-Allow-Origin *;
try_files $uri /index.html;
sendfile on;
expires $expires;
tcp_nopush on;
gzip on;
gzip_types text/html application/javascript text/css;
}
...
}
当第一次加载index.html页面时,expires头被正确设置,但是当进行软重新加载时,expires日期被设置为一年。会有什么问题呢?
编辑:我注意到,当第一次加载页面/硬重新加载时,在获取index.html的响应头中有内容类型的text/html,但当重新加载时,这个头根本不存在,这可能是问题吗?
1条答案
按热度按时间deyfvvtc1#
好吧,我自己找到了答案--应该使用缓存控制头而不是过期头。