0

我们在 Sitecore 站点前使用 ARR 设置了反向代理。我们仅使用此反向代理来提供站点核心媒体项目。Sitecore 媒体项目正在使用 ARR 正确缓存在磁盘上。

现在我们面临的问题是,对于所有图像,HTTP 状态码始终为 200,因此它们不会缓存在浏览器中。如果我们禁用反向代理,则 HTTP 状态代码为 304,并且浏览器从本地缓存呈现图像。

ARR 不发送 304 状态码有什么原因吗?

更新#1:下面是我们设置的 ARR 规则:

    <rule name="Default ReWrite" enabled="true" patternSyntax="ECMAScript" stopProcessing="true">
      <match url="^(.*)" />
      <conditions>
                    <add input="{CACHE_URL}" pattern="^(https?)://" />
      </conditions>
      <action type="Rewrite" url="http://127.0.0.1/{R:0}" logRewrittenUrl="true" />
                <serverVariables>
                </serverVariables>
    </rule>
4

1 回答 1

3

见帖子: http ://forums.iis.net/t/1213330.aspx?ARR+Disk+cache+return+200+instead+of+304+for+cached+files

看起来它与 ETAG (IF-NONE-MATCH) 标头相关 - 如果 ETAG 是从服务器发出的,然后由另一台服务器验证(在这种情况下为 ARR),这将不起作用。因此 ARR 永远不会向浏览器返回 304,而只是从磁盘中获取缓存文件并将 200 返回给浏览器。

于 2014-06-26T21:22:02.670 回答