Asp.net 如果资本化不同,Chrome会对同一资产发出多个请求
我正在从事一个大型asp.net web项目,在过去几年中,有许多不同的开发人员/顾问对其进行了更改。我注意到,根据开发者的不同,图像和其他静态内容的路径可能包含正确的大小写、全小写或完全随机的内容。由于套管不同,浏览器似乎对同一资产发出多个请求。比如说-Asp.net 如果资本化不同,Chrome会对同一资产发出多个请求,asp.net,image,browser-cache,capitalization,static-content,Asp.net,Image,Browser Cache,Capitalization,Static Content,我正在从事一个大型asp.net web项目,在过去几年中,有许多不同的开发人员/顾问对其进行了更改。我注意到,根据开发者的不同,图像和其他静态内容的路径可能包含正确的大小写、全小写或完全随机的内容。由于套管不同,浏览器似乎对同一资产发出多个请求。比如说- <!DOCTYPE html> <html> <head> <title></title> </head> <body> <img sr
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<img src="http://cdn.sstatic.net/stackoverflow/img/sprites.png" />
<img src="http://cdn.sstatic.net/stackoverflow/Img/sprites.png" />
</body>
</html>
除了搜索项目中的每个图像和规范化外壳外,这里还有什么可以做的吗?也许我可以在页面响应标题中添加一些内容,告诉浏览器忽略大小写,等等。好吧,浏览器(不仅仅是Chrome,任何没有错误的浏览器)必须这样做,因为它无法知道您恰好使用了不区分大小写的映射,所以
和
是完全不同的URI
你可以做几件事
首先查找并替换以下内容:
最后,您可以在预呈现步骤中使用过滤器(Response.filter设置为的流对象,写入Response.filter的上一个值)或代码来扫描本地URI(如果更改其他站点上URI的大小写,则可能会导致404)并正确输出它们。清理标记,使指向同一资源的链接完全相同。@Oded-我同意这样做是正确的,但我要问的问题是是否有其他选择。我的客户希望澄清这一点,但他们不会同意梳理整个解决方案中引用的~2500个资产和CMS中数千个内容页所需的工作量。这些资产是如何存储的?它们都是HTML文件吗?指向图像/脚本/css/等的链接存在于web表单控件中,以及CMS中手动输入的字段中(在运行时通过API添加到aspx/ascx)。使用HTML Agility Pack,您可以清理CMS中出现的HTML片段(假设您可以访问备份数据库)-这可以自动化。剩下的控件不会有那么多工作。