Gin静态文件缓存

时间:2018-04-09 00:30:55

标签: go

可以在Gin(golang)中缓存静态文件吗?

我试过了:

router := gin.Default()
router.Static("/assets", "./assets") 

但每当我刷新页面时,我都会收到状态码为200的回复。我假设它应该是304(或类似),但https://github.com/gin-gonic/gin没有提到HTTP缓存(至少目前为止)。

如何在杜松子酒中处理静态文件缓存?

2 个答案:

答案 0 :(得分:1)

如果您使用的是Chrome,则可能是以下原因:

您可能已在DevTools的“首选项”面板中选择了“禁用缓存(打开DevTools时)”选项。 Chrome is sending Cache-control:no-cache header

enter image description here

答案 1 :(得分:0)

issue 1222仍然有效,但评论为:

  

状态代码304不会指示缓存文件,但未修改其中一个。

     

但你错了。这足以启用HTTP Conditional Get:

r := gin.Default()
r.Static("/assets", "./assets")
  

返回资产中的文件,包括HTTP标头Last-Modified   浏览器的下一个请求会发送相应的If-Modified-Since标头,Gin将使用304 Not Modified回复该标头。