Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 利用浏览器缓存-外部图像_Html_Caching_Iis 7.5_Pagespeed - Fatal编程技术网

Html 利用浏览器缓存-外部图像

Html 利用浏览器缓存-外部图像,html,caching,iis-7.5,pagespeed,Html,Caching,Iis 7.5,Pagespeed,我已经能够正确地(我认为)在IIS上启用缓存。现在唯一的问题是,当我运行谷歌的PageSpeed Insights时,它仍然说 在HTTP头中为静态资源设置过期日期或最长使用期限会指示浏览器从本地磁盘而不是通过网络加载以前下载的资源 但所有的建议都是外在形象。我使用Amazon的S3从外部托管图像(链接到直接URL,如图所示) 有没有一种方法可以“利用浏览器缓存”处理这些外部图像 提前谢谢 安迪:你试过了吗 ExpiresActive On ExpiresDefault A0 <

我已经能够正确地(我认为)在IIS上启用缓存。现在唯一的问题是,当我运行谷歌的PageSpeed Insights时,它仍然说

在HTTP头中为静态资源设置过期日期或最长使用期限会指示浏览器从本地磁盘而不是通过网络加载以前下载的资源

但所有的建议都是外在形象。我使用Amazon的S3从外部托管图像(链接到直接URL,如图所示)

有没有一种方法可以“利用浏览器缓存”处理这些外部图像

提前谢谢

安迪:你试过了吗

ExpiresActive On
ExpiresDefault A0    
<FilesMatch "\.(gif|jpg|jpeg|png|swf)$">
    ExpiresDefault A3024000
    Header append Cache-Control "public"
    </FilesMatch>
ExpiresActive开启
到期默认A0
到期默认A3024000
标头附加缓存控制“公共”

在.htaccess文件中,希望这有帮助。

是的,使用Amazon S3,您仍然可以设置存储在bucket中的对象的
Expires

存储对象时必须设置此标头,因此有两种方法:

  • 以编程方式使用API(使用PUT请求设置到期标头)
  • 在用于上载对象的bucket浏览器中
如果使用API,可以执行以下操作

PUT /ObjectName HTTP/1.1
Host: BucketName.s3.amazonaws.com
Date: date
Authorization: authorization-string
Expires: expiry-date

对于第二种情况,此链接可能会有所帮助:


希望这有帮助。

对于S3上的单个图像,您可以右键单击存储桶中的图像,转到属性并选择元数据

add Key: Cache-Control  and Value: max-age=604800 (this is for 7 days)

这对我来说很有用。但是如果你想批量编辑它们,我想你必须尝试命令行。如果你是从命令行进行的,根据我的理解,你需要再次复制图像,以便最大限度地改变年龄来处理图像。

你应该提供你到目前为止所取得的成绩,以便我们能够给出正确的建议。如果我不同意,请道歉dn似乎不够具体……更重要的是,我所做的工作已经使所有图像在本地缓存得很好,但其他地方没有。下面有人指出了一个明显的问题,我没有控制另一个站点的缓存,所以我必须在S3内完成。问题的作者表示,他们正在使用IIS它主要使用Web.config文件进行配置,可能不使用.htaccess文件(除非使用类似Helicon Ape的文件)。感谢您的回复,但正如Tom所说,这个项目是在Microsoft世界中。非常感谢。我知道这听起来很愚蠢,但我没想到我必须将其缓存在S3服务器上。现在听起来很明显!!