没有过期报头



我有来自YSlow的报告:

(no expires) http://static3.scirra.net/avatars/128/40cfdcbd1b1ec1842e199c97c4b85a4a.png

(还有很多相似之处)。在我的网里。在配置中,我有:

    <system.webServer>
            <staticContent>
                <clientCache httpExpires="Sun, 29 Mar 2020 00:00:00 GMT" cacheControlMode="UseExpires" />
            </staticContent>
            <caching>
                <profiles>
                    <add extension=".ashx" policy="CacheForTimePeriod"  kernelCachePolicy="DontCache" duration="01:00:00" />
                    <add extension=".png" policy="CacheUntilChange" kernelCachePolicy="CacheUntilChange" location="Any" />
                </profiles>
            </caching>
        <rewrite>
            <rules>
                <rule name="Avatar">
                    <match url="avatars/([0-9]+)/(.*).png" />
                    <action type="Rewrite" url="gravatar.ashx?hash={R:2}&amp;size={R:1}" appendQueryString="false" />
                </rule>
            </rules>
        </rewrite>

不应该正确添加expires报头吗?我的目标是:

  • 功能。ashx从Gravatar服务器获取图像
  • 服务器缓存结果1小时(类似于SO)
  • Expires头被添加,所以客户端不会一直从我的服务器取回它

在IIS中可以定义HTTP头文件。

在IIS中单击您的images文件夹。然后单击"HTTP响应头"。

从这里你可以检查过期的网页内容和多少时间后,你选择。你也可以对JS和CSS这样做。要小心哪些文件也应用了这个。此外,如果你设置了一个很长的过期时间,并且你打算更改这些文件,你可能会给你的网站带来问题。

如果你在JS文件上有1个月的有效期,然后你在使用相同的名称时更改它,那么当用户访问你的网站时,他们会看到内容没有过期,不会从web服务器请求更改的文件。当你认为内容可能会发生变化时,你可以通过设置适当的过期时间来解决这个问题,或者你可以为你的javascript和CSS文件应用版本号。

相关内容

  • 没有找到相关文章

最新更新