firebase托管缓存错误

时间:2014-06-12 03:26:06

标签: hosting firebase varnish

我已在Firebase Host中部署了一些JS资产。

对于一些JS文件,我一直在 如果您转到https://organicdot.com/assets/landing-page/startup/common-files/js/jquery.bxslider.min.js?_=1402542893115,您将收到错误503连接超时错误。

如果您转到相同的地址,但最后没有时间戳,https://organicdot.com/assets/landing-page/startup/common-files/js/jquery.bxslider.min.js该文件将毫无问题地提供服务。

1 个答案:

答案 0 :(得分:2)

将时间戳添加到URL将导致Firebase Hosting将文件的每次后续提取视为不同的资源。虽然我们将来可能会对此进行更改,但这意味着CDN上的任何边缘服务器每次收到请求时都会代理美国东海岸原始服务器的响应,从而有效地消除了使用CDN的好处。

当您将新内容部署到Firebase托管时,我们会立即清除整个CDN上旧文件的所有缓存副本,并且默认Cache-Control标头为max-age=3600,这是任何运行良好的客户端中最长的可能正在使用文件的旧副本是1小时。收获CDN所有奖励同时确保新鲜内容的最简单的解决方案是不将时间戳放在URL中。

在不久的将来,我们还将添加修改Cache-Control标头的功能,因此,如果1小时仍然太长,您将能够告诉浏览器不要缓存内容根本没有(通过更高的数据传输率进行权衡)。忽略CDN级别URL上的任何查询参数是我们正在考虑的其他事项。

至于部署需要多长时间 - 一旦firebase-tools中的进度表或主机仪表板上的进度表完成,文件就应该准备就绪(除了从每个边缘服务器首次获取时到原始服务器的往返) )。当然,可以在浏览器级别进行缓存。