2014-06-12 108 views
0

我在我的Firebase主机中部署了一些JS资产。firebase托管缓存错误

对于一些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该文件将得到服务没有任何问题。

+0

文件通常需要多长时间才能部署?似乎我也无法加载一些普通的CSS - > https://organicdot.com/assets/landing-page/startup/flat-ui/bootstrap/css/bootstrap.css – williamli

+0

内容现在显示正常。我猜Firebase需要一些时间来在他们的cdn上部署文件? – williamli

回答

2

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

当你部署新的内容,以火力托管,我们清除在整个CDN瞬间旧文件的任何缓存的副本,并给出了默认Cache-Control头是max-age=3600,最长的任何好行为的客户可以使用的旧副本一个文件是1小时。获得CDN所有奖励的最简单的解决方案,同时确保新鲜的内容是不将时间戳放在URL中。

在不久的将来,我们还将添加修改Cache-Control标题的功能,因此如果1小时仍然太长,您将能够告诉浏览器不要缓存内容并取决于更高的数据传输速率)。忽略CDN级别URL上的任何查询参数是我们正在考虑的其他事情。

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