HTTP响应头不缓存

Cache-Control:nocache

Pragma:no-cache

Expires:-1

<meta http-equiv='Cache-Control' content='-1'/>

### 配置 Nginx 去除 HTTP 响应头中的缓存控制字段 为了移除特定 URL 路径下的 `Cache-Control` 和其他相关缓存部信息,在 Nginx 中可以通过修改相应的 location 块实现。具体来说,对于 `/freight` 这一路由路径,如果希望去除所有的缓存控制,则可以在该位置定义中加入清除这些部的操作。 ```nginx location ^~ /freight { try_files $uri /freight/index.html; # 移除指定类型的文件的缓存控制部 if ($uri ~* \.(htm|html)$) { more_clear_headers 'Cache-Control'; more_clear_headers 'Pragma'; } if ($uri ~* \.(js|css|jpg|jpeg|gif|png|ico|cur|gz|ttf|woff|ico|svg|svgz|mp4|ogg|ogv|webm)$) { more_clear_headers 'Cache-Control'; more_clear_headers 'Expires'; } index index.html index.htm; } ``` 上述配置利用了 `more_clear_headers` 指令来删除需要的响应头[^1]。需要注意的是,使用 `if` 结构可能带来性能上的开销以及潜在的风险;因此建议尽可能采用更高效的替代方案,比如正则表达式的优化或直接针对静态资源应用全局规则。 另外一种方法是在更高层次上统一管理这类需求: ```nginx http { ... map $sent_http_content_type $expires_value { default off; "~*\b(js|css)\b" max; "~*\b(jpeg?|png|gif)\b" 7d; } server { ... location / { expires $expires_value; # 对于 HTML 文件特别处理 if ($request_filename ~* (\.html$)) { set $no_cache "1"; } if ($no_cache) { add_header Cache-Control 'no-store, no-cache'; add_header Pragma 'no-cache'; expires -1; } # 清理之前设定的无缓存指令 unset $no_cache; } location ^~ /freight { try_files $uri /freight/index.html; index index.html index.htm; } } } ``` 这段代码展示了如何通过 `map` 和条件判断相结合的方式来灵活地控制同 MIME 类型的内容的有效期,并且能够有效地去除某些情况下想要的缓存行为[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值