【发布时间】:2023-07-07 23:25:01
【问题描述】:
我正在尝试在 revel go web 框架上构建一个简单的 web 应用程序。 出于某种原因,当我在浏览器中打开它们的 URL 时,公共目录中的文件没有正确加载。例如,文件的旧版本可能会出现(即使在浏览器中重新加载后),或者会出现截断的版本。
有人遇到过这个问题吗?
【问题讨论】:
-
尝试
curl -I http://url/to/file.jpg看看是否设置了Cache-Control或Expires标头(或查看源代码)。 -
我试过了,我得到以下输出:
HTTP/1.1 200 OK Accept-Ranges: bytes Content-Disposition: inline; filename=droparea.css Content-Length: 645 Content-Type: text/css; charset=utf-8 Date: Mon, 05 Aug 2013 23:03:46 GMT Last-Modified: Mon, 05 Aug 2013 23:02:51 GMT Set-Cookie: REVEL_FLASH=; Path=/ Set-Cookie: REVEL_SESSION=56490577f9ae482388651378bc5c746a230c35fe-%00_TS%3A1378335826%00; Path=/; Expires=Wed, 04 Sep 2013 23:03:46 UTC -
此外,curl 检索文件的旧版本。重新开始狂欢似乎没有什么不同。
-
那里有一个
Expires标头。您不在我的时区(所以我无法确定它是否在您的“未来”中)但是如果 Expires 提供的日期大于时间,您的浏览器将缓存文件并且直到那个时候才检查超过,因为不需要重新验证。作为临时措施,您始终可以在浏览器中强制重新加载 (Ctrl/Cmd+R),或者对 CSS 进行版本控制:droparea.css?v={{ time.Now().UTC() }} -
有趣的是,过期日期已经过去了。我也尝试更改代码,即使我在开发模式下运行,热重载似乎也不起作用..这里有些可疑