基本要求
我有一个可以在浏览器中或浏览器外运行的SL应用程序。我希望浏览器:
更多详情
设置未来expires
标题显然可以解决缓存问题,但我无法强制用户下载最新版本。通常我只会在网址中添加一个查询字符串(例如url?v=1
),但我不能这样做,因为这会破坏浏览器外的功能。例如,应用程序认为它实际上并未安装。
无缓存
如果我将Cache-Control
设置为no-cache
,Chrome和Firefox会正确地向服务器发送请求以获取xap,但如果返回304,则使用缓存。 IE8只是像Safari一样再次下载文件。
必须-重新验证
将Cache-Control
设置为must-revalidate
再次在Chrome和Firefox中正常运行,但Safari总是再次下载xap,而IE8始终使用缓存。
如何按照本问题开头的说明进行设置?
答案 0 :(得分:1)
我不确定Chrome / Firefox是否严格“正确”,你毕竟没有告诉浏览器它应该缓存内容甚至内容是可缓存的。
而不是no-cache尝试“Cache-Control:max-age = 15”。看看它是否说服IE它应该缓存内容尽管它的大小(这就是为什么它最初不缓存它)。
对于OOB安装,请使用Application
对象的CheckAndDownloadUpdateAsync
方法。请注意,您需要在下载更新后通知用户重新启动应用程序。