Asp.net 本地主机上的Gravatar默认映像缓存问题
我对gravatar有一个很奇怪的问题 我在Asp.net 本地主机上的Gravatar默认映像缓存问题,asp.net,html,caching,browser-cache,gravatar,Asp.net,Html,Caching,Browser Cache,Gravatar,我对gravatar有一个很奇怪的问题 我在example.com/image.jpg 我很久以前(一个多星期前)在公共网站上更改了这张图片 从那时起,在localhost上,当我开发网站时,仍然会看到旧的默认图像,但是当我在远程域上发布网站时,默认图像显示为正确的图像,即新图像 我已多次清除浏览器缓存,并在所有主要浏览器上进行了尝试 有人知道为什么会这样吗 这就是我创建url的方式 string defaultImg = HttpContext.Current.Server.UrlEncod
example.com/image.jpg
我很久以前(一个多星期前)在公共网站上更改了这张图片
从那时起,在localhost
上,当我开发网站时,仍然会看到旧的默认图像,但是当我在远程域上发布网站时,默认图像显示为正确的图像,即新图像
我已多次清除浏览器缓存,并在所有主要浏览器上进行了尝试
有人知道为什么会这样吗
这就是我创建url的方式
string defaultImg = HttpContext.Current.Server.UrlEncode("http://example.com/image.jpg");
string URL = string.Format("http://www.gravatar.com/avatar/{0}?r=pg&s={1}&d={2}",hash,size,defaultImg);
然后请求化身
private bool makeAvatarRequest(string URL)
{
try
{
WebRequest request = WebRequest.Create(URL);
using (WebResponse response = request.GetResponse())
{
using (Stream responseStream = response.GetResponseStream())
{
displayImage(responseStream);
return true;
}
}
}
catch (WebException ex)
{
return false;
}
}
并显示图像
private void displayImage(Stream stream)
{
HttpContext.Current.Response.ContentType = "image/png";
System.Drawing.Image img = System.Drawing.Image.FromStream(stream);
MemoryStream temp = new MemoryStream();
img.Save(temp, ImageFormat.Png);
byte[] buffer = temp.GetBuffer();
HttpContext.Current.Response.OutputStream.Write(buffer, 0, buffer.Length);
img.Dispose();
temp.Dispose();
}