我们试图强制客户端的浏览器在静态文件更改时重新加载它们。目前,我们的构建脚本会自动使用构建时间戳创建一个新目录,并将代码中的内容替换为指向该目录。
但是,我觉得这几乎不是最佳解决方案。如果存在新构建,即使只有一个文件更改,它也会强制客户端浏览器加载每个文件,并且通过扫描每个文件并替换每个静态文件引用,构建时间会大大增加。
我知道我们也可以在声明文件时设置版本(例如 <link src="blahblah.css?version=1.1" />),但这迫使我们更改所有代码以包含版本占位符并且仍然拥有我们的构建脚本替换它。
有没有更聪明的方法来做到这一点?我们正在使用 Spring MVC。mvc:resources 中是否有我不知道在不更改代码的情况下执行此操作的选项?或者 web.xml 上的东西?
我们正在使用tomcat。有没有办法在服务器级别做到这一点?使用 Varnish 之类的缓存会有所帮助吗?或者这些缓存只允许设置到期时间而不检查文件是否更改?请记住,我对服务器和缓存配置任务一点也不满意。
我发现了这个项目https://code.google.com/p/modpagespeed/
,但由于它远离我的舒适区,我很难理解功能以及这是否有助于我想要的东西。
有人有什么想法吗?谢谢