为什么浏览器会多次下载从客户端模板生成的图像?

时间:2014-03-05 20:12:21

标签: .net http caching browser

我正在使用Nancy构建一个Web应用程序,并使用我自己的自定义类与Nancy一起向浏览器提供静态内容。

当我运行演示(code here),然后点击将从页面中删除图像然后使用客户端模板渲染相同图像的链接时,我看到浏览器发出请求每次点击后的图像。

以下是在我的链接上多次点击后,我在Chrome devtools中的网络请求图片,该图片呈现带有图片的模板:

Network tools information from my broken app

我希望不会再次从服务器下载图像。当我使用默认的Nancy应用程序或不是.NET-y的东西运行这个简单的Web应用程序时,我只看到一个图像请求。我尝试过Nancy的标准静态内容提供商,golang file serverhttp-serverisaacs st。他们都表现得像这样:

Network tools from golang standard file server

我认为我的过期或缓存相关的标题搞砸了,但我不确定。标题(here's the diff between the headers from the default Nancy implementation and my code as a gist)不会显示我正在接受的任何内容。

我有很多问题:

  1. 导致图像再次下载的浏览器中发生了什么?
  2. 如何使用我的开发工具来弄清楚是什么导致浏览器再次下载图像?
  3. 如果你想进入它,我的自定义实现有什么问题?
  4. 我目前在Windows 7上的Chrome版本33.0.1750.146 m中看到此行为。

1 个答案:

答案 0 :(得分:0)

您是否尝试过缓存清除?向URL添加唯一字符串(例如GUID)通常可以解决问题。例如:/Content/face.png?v = 7c1f4f57f2aa4cf9b707664fb0bd7a05

编辑:错字