【问题标题】:image loading by classic ASP page is not cached经典 ASP 页面加载的图像未缓存
【发布时间】:2016-06-17 13:40:36
【问题描述】:

我想隐藏我的图像,所以我使用 ASP 脚本加载图像。但是我看到图片没有缓存,有没有办法缓存这种图片?

我的代码:

Response.Buffer = True
response.Expires=240
response.CacheControl="Public"
Response.ContentType = "image/jpeg"
Set http = Server.CreateObject("MSXML2.ServerXMLHTTP")
http.open "GET","http://www.test.net/images/" & request.querystring("ID"), False
http.Send
Response.BinaryWrite http.ResponseBody
Set http = Nothing
Response.Flush
Response.End

这个文件名为 test.asp,我通过 test.asp?ID=12345 调用它,像这样:

<img src="test.asp?ID=12345">

firebug 显示图片加载正常,不是 302 未修改。

这样的图片可以缓存吗?

【问题讨论】:

  • 记得在测试期间取消标记Disable Browser Cache 选项。
  • 未标记,因此启用了缓存。在静态图像上显示“304 - 未修改”

标签: iis asp-classic http-caching


【解决方案1】:

没有理由不能缓存 ASP 页面,因为浏览器不知道是哪个服务器端技术生成的。您只需要设置正确的 HTTP 标头指令。在您的情况下,您至少需要在 Cache Control 指令中设置 Max-Age,例如:

response.CacheControl="public, max-age=68400"

请参阅下面的article 以了解有关 HTTP 案例的其他有用指令。

【讨论】:

  • ASP 页面是的,但我使用 ASP 作为 img src。
  • 为什么这很重要?我在 PHP、Asp.NET、Java Servlets、JSP Pages 中使用过类似的代码。
  • Firebug 中的 NET 选项显示响应 200 OK,所以这意味着它没有被缓存 ;-(
猜你喜欢
  • 2015-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-09
  • 1970-01-01
相关资源
最近更新 更多