在下面的示例location
中,-1
对于expires
意味着什么?这是否意味着“永不过期”或“永不缓存”?
# cache.appcache, your document html and data
location ~* \.(?:manifest|appcache|html?|xml|json)$ {
expires -1;
access_log logs/static.log;
}
https://github.com/h5bp/server-configs-nginx/blob/b935688c2b/h5bp/location/expires.conf
3条答案
按热度按时间anhgbhbe1#
根据nginx手册,该指令将
Expires
和Cache-Control
HTTP头添加到响应中。值
-1
表示这些头被设置为:Expires:
* 当前时间减1秒 *Cache-Control: no-cache
因此,总的来说,它指示浏览器不要缓存文档。
lf3rwulv2#
如果使用
expires -1
,则意味着这些页面永远不会被缓存。expire
指令指示浏览器在一段时间后(或在某个时间)使文件缓存过期。如果给定负值,则不缓存。whhtz7ly3#
现有的两个答案都不是严格正确的。设置
expires: -1;
确实会让nginx添加Cache-Control: no-cache
HTTP头。但这并没有禁用缓存。相反,这使得任何缓存的版本立即“过期”,要求客户端(浏览器)每次重新验证缓存(如果有的话)。例如,如果客户端已经缓存了资源的版本,则有义务通过向服务器进行请求来进行验证,该请求可以包括
If-None-Match
和/或If-Modified-Since
报头,在这种情况下,如果缓存的资源仍然是最新的,则服务器可以用304 Not Modified
进行回复。