Browser 像Facebook这样的网站是如何强制用户加载新发布的版本的?

Browser 像Facebook这样的网站是如何强制用户加载新发布的版本的?,browser,Browser,浏览器确实缓存了很多JS和CSS文件。像Facebook这样的网站在发布新的生产代码时是如何解决这个问题的?他们是否在所有资源中都进行了缓存破坏?至少在他们所有的图像文件中我都看到了这些混乱的字符。通常他们会在html文件中的java脚本URL末尾添加一个版本号或一些独特的代码,如 每当有新版本时,他们只需将刷新所有用户浏览器缓存的v=2更改为v=3即可 css url也是一样,我看不到那些查询字符串。相反,它们似乎在资源名称中使用了一些哈希值。考虑到他们获得的流量,我猜他们在构建时放置这些散列

浏览器确实缓存了很多JS和CSS文件。像Facebook这样的网站在发布新的生产代码时是如何解决这个问题的?他们是否在所有资源中都进行了缓存破坏?至少在他们所有的图像文件中我都看到了这些混乱的字符。

通常他们会在html文件中的java脚本URL末尾添加一个版本号或一些独特的代码,如

每当有新版本时,他们只需将刷新所有用户浏览器缓存的v=2更改为v=3即可


css url也是一样,我看不到那些查询字符串。相反,它们似乎在资源名称中使用了一些哈希值。考虑到他们获得的流量,我猜他们在构建时放置这些散列文件名,而不是在响应之前中断单个HTTP请求并替换字符串?有多种方法。。这是最常见的方式。。。您不必在每个页面中替换字符串。。它们在属性文件中创建常量,由php或服务器端代码读取,并在页面加载时自动填充url中的值,但像配置文件图像这样的内容必须来自数据库,因为您不知道用户可能会多久更新一次,对吗?当然。。这将在每次加载页面时从数据库中获取。属性文件中的这些常量必须在构建时生成,对吗?因为开发人员将无法记住这些文件名。