Facebook,Google和其他大型应用程序如何处理CSS和JavaScript文件?

Jea*_*lis 14 javascript css facebook file

Facebook:http ://static.ak.fbcdn.net/rsrc.php/v1/yh/r/u2OL99TwlfU.css
Google:http://ssl.gstatic.com/gb/js/sem_cf9545d69b4bd3d22ed10206010c8b23.js

还有其他网站,如Tagged也使用这种方法.

这些网站和其他大型应用程序如何处理这些文件?我假设当他们更新文件时,URL实际上会更改,以便缓存无法识别URL并重新加载新文件.

我实际上对Facebook的rsrc.php更加困惑,但我仍然不太了解其余部分.看来谷歌的随机字符串是MD5的东西.

我确实希望在我的网站上有这样的东西,大型应用程序使用它所以它必须有用 - 即使我没有决定使用它,它的知识在不久的将来可能是有益的.

Eva*_*ley 30

(我是rsrc.php和Facebook的Haste静态资源管理系统的原作者.)

您可以在Phabricator文档中找到Facebook在静态资源管理中遇到的一些挑战及其解决方法的描述:

https://secure.phabricator.com/book/phabflavor/article/soon_static_resources/

对于特定问题,rsrc.php URI就像那样(其中包含"rsrc.php"),因为我在编写rsrc.php并添加,部署和测试一个时没有2007年的全局Apache重写规则.对于一些更优雅的URI似乎不值得打扰(在PHP中,您可以在运行时读取"x.php"文件部分之后的URI的剩余部分).所以这部分只是一个PHP实现工件.

多年来,其他路径组件已被用于各种事物,如紧急版本号,如果缓存管道出现问题,我们可以全局崩溃以打破每个人的缓存,哈希校验和,因此我们可以区分有效和垃圾请求的日志记录,内部标志,用于更改用于开发的返回资源的缓存策略,以及资源的风格(例如,针对特定浏览器定制或本地化为特定语言).