ASP MVC 5 - 为什么斜杠" /"在img标签中触发新请求

时间:2016-04-17 14:10:36

标签: asp.net-mvc razor

最近我注意到我的应用程序产生了更多我期望的请求。调试显示,在某些情况下,1个页面访问会生成2-5个单独的请求(Owin和Ninject依赖项都会重新初始化)。

过了一会儿,我发现在生成像这样的图像标记时,我的剃刀视图中创建了这些额外的请求:

<img src="/" alt="">

此行不会导致任何问题(即使图像不存在):

<img src="/a.jpg" alt="">

当然,我不想生成无效图像,我修复了那部分,但我仍然想知道这背后是什么。

此行为的目的是什么?

1 个答案:

答案 0 :(得分:2)

将图像标签的src设置为&#34; /&#34;实际上会导致浏览器从根目录再次加载整个网站,直到它意识到请求是HTML文档而不是图像。因为它是从根加载它所以它被认为是一个新请求,因此OWIN和Ninject重新初始化所有内容,因为它们是每个请求而不是每个应用程序生命周期。

浏览器中的图像标记无法检测您在src中放置的URL是什么,直到它下载为止,这就是为什么在将src设置为&#34; /时必须下载整个页面的原因。 &#34;即网站的根源。