我有一个展示视图,它使用了一个' Universal Viewer'加载图像。图像尺寸来自一个来自IIIF图像服务器的json文件。
我修复了一个错误并且存在一个新的json文件,但用户的浏览器仍在使用旧的info.json文件。
我知道我可以让他们做一次硬重装,就像我自己在机器上做的那样,但很多用户可能会受到影响,我现在只是好奇。
答案 0 :(得分:0)
这取决于JSON文件的服务位置以及缓存方式。
使文件缓存失效的保证方法是每次更改时更改文件名。这通常是将其重命名为filename-MD5HASH.ext
,其中MD5HASH是文件的MD5哈希值。
如果您无法更改文件名(它来自您无法控制的来源,则可以通过向网址添加缓存清除查询密钥来实现。例如http://example.com/file.ext?q=123456
。
答案 1 :(得分:0)
现代浏览器都附带了缓存控制功能。使用ETag和Cache-Control标头的组合,您可以完成所需的操作,而无需更改文件名或使用缓存清除查询参数。
ETags允许您将令牌传递给客户端,该客户端将告知其浏览器更新缓存版本。可以根据内容创建日期,内容长度或内容指纹创建此令牌。
Cache-Control headers允许您为网络资源创建有关缓存内容的时间,人员和方式的政策。
使用ETag和Cache-Control标头是一种有用的方式,可以在用户IIIF或任何其他内容时更新缓存时与用户进行通信。但是,添加ETag和Cache-Control这可能非常特定于您的本地实现。许多框架(如Ruby on Rails)都有很多这样的功能。还有一些Web服务器配置可能需要修改,一些sample configurations可以从使用这些策略的HTML5 Boilerplate项目中获得。
示例Apache配置: