http.FileServer 的缓存问题
众所周知,Go 标准库中的 http.FileServer 存在缓存问题,导致过时的文件编辑后提供的内容。用户遇到此问题并寻求帮助。
问题描述:
尽管 Content-Length 标头发生变化,使用 http.FileServer 的应用程序仍遇到不正确的文件内容传输。内容只会在服务器或系统重新启动后更新。
扩展调查:
为了排除潜在的缓存来源,用户检查了应用程序的代码,但发现没有缓存机制的证据。他们还在不同平台(Windows、Ubuntu、OS X)上测试了该应用程序,行为没有变化。
解决方案:避免 Virtual Box 共享文件夹
经过一些调查后,用户发现了罪魁祸首:Virtual Box共享文件夹。当从 Virtual Box 共享文件夹提供文件时,会出现缓存问题。但是,当文件存储在主机系统上并从那里提供服务时,问题就消失了。
原因:
根本问题是 Virtual Box 共享文件夹出现实现自己的缓存机制,这与http.FileServer执行的缓存冲突。这会导致提供过时的内容。
建议:
为了避免此缓存问题,建议将打算在 http.FileServer 中使用的文件存储在外部Virtual Box 共享文件夹。这确保了应用程序的缓存机制是内容交付的唯一控制器,从而防止提供过时的内容。
以上是使用 Virtual Box 共享文件夹时,为什么 http.FileServer 提供陈旧内容?的详细内容。更多信息请关注PHP中文网其他相关文章!