我向服务器发出了如下命令:
http://localhost/Combine.aspx/flag/file1.js,file2.js,file3.js
我也试过这个:
http://localhost/Combine.aspx/flag/value/file1.js/file2.js/file3.js
它简单地结合了它给出的三个文件:这很好。
根据Firefox的第一次请求,页面显示正确。再次刷新页面时,内容如下所示:
��������`I�%&/m�{J�J��t��`$�����iG#)�*��eVe]f@�흼��{���{��;�N'
在这种情况下,对服务器发出 no 请求,据我所知,该文件只从firefox缓存中检索。
如果我使用Control-F5强制刷新页面,页面将再次显示正常。
以下是使用 Control-F5 (工作)的请求和响应(在firebug中):
响应
Cache-Control public
Content-Type application/javascript; charset=utf-8
Content-Encoding gzip
Expires Sun, 26 Feb 2012 02:57:26 GMT
Last-Modified Fri, 07 Jan 2011 21:08:54 GMT
Etag CLYvZwbFmainWEMi8h-6x-zNEIQ1
Vary Accept-Encoding
Server Microsoft-IIS/7.5
Set-Cookie auth=longstring; path=/
X-AspNet-Version 2.0.50727
X-Powered-By ASP.NET
Date Thu, 03 Mar 2011 02:57:26 GMT
Content-Length 918
请求
Host localhost
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.14) Gecko/20110218 Firefox/3.6.14
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Cookie auth=longstring
Pragma no-cache
Cache-Control no-cache
这与只是F5 (不起作用)相同:
响应:
Cache-Control public
Content-Type application/javascript; charset=utf-8
Content-Encoding gzip
Expires Sun, 26 Feb 2012 02:57:26 GMT
Last-Modified Fri, 07 Jan 2011 21:08:54 GMT
Etag CLYvZwbFmainWEMi8h-6x-zNEIQ1
Vary Accept-Encoding
Server Microsoft-IIS/7.5
X-AspNet-Version 2.0.50727
X-Powered-By ASP.NET
Date Thu, 03 Mar 2011 03:01:31 GMT
Content-Length 1533
请求:
Host localhost
User-Agent Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.14) Gecko/20110218 Firefox/3.6.14
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/;q=0.8
Accept-Language en-us,en;q=0.5
Accept-Encoding gzip,deflate
Accept-Charset ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive 115
Connection keep-alive
Cookie auth=longstring
我能说的唯一不同的是内容长度(可能导致损坏),但由于它从未到达服务器,我无法控制它。
导致这种情况的原因是什么?
编辑:
这也发生在IE8上,但它不是查看损坏的文件,而是下载损坏的文件。没有请求服务器(在visual studio中设置断点)。
对于chrome,当直接查看URL时,每次都会向服务器发出请求,并且每次都有效。但我相信,如果它包含在标签中,它的行为与Firefox类似。
哦,还有:
如果我关闭Expires标头(这是URL中的标志之一),一切正常。
编辑2:
我能够通过不发送两个 Expires和ETag标头来解决这个问题,只有一个或另一个。我不知道为什么ETag标头会导致这种损坏。
答案 0 :(得分:0)
这是因为您的IIS配置。将IIS调整为ASP 4.0 Classic,而不是默认应用程序池