mvc control 请求两次问题

简介:

今天在做项目时,突然发现一个mvc 的control中action被执行了两次,最终发现是由于favicon.ico导致的。问题代码:

<link rel="shortcut icon" href="Images/wangyi.ico" type="image/x-icon" />,最终改成了
<link href="Images/wangyi.ico" type="image/x-icon" />,测试浏览器为google; 

==================================================================================

 

随便打开一个网页:比如 http://www.baidu.com/

image

可以看到在浏览器的标签头上面显示了一个图标,这个图标是:image,也就是我们常说的favicon.ico.

 

由于这篇文章主要讨论favicon.ico,以及各个浏览器对其的不同处理,所以还是新建web项目如下:

image

image

image

image

 

home.html 代码如下:

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>home page</title> <link rel="icon" href="Images/wangyi.ico" type="image/x-icon" /> <link rel="shortcut icon" href="Images/wangyi.ico" type="image/x-icon" /> </head> <body> home page </body> </html>

 

下面两行代码就可以告诉浏览器使用wangyi.ico 作为home.html的图标了:

<link rel="icon" href="Images/wangyi.ico" type="image/x-icon" /> <link rel="shortcut icon" href="Images/wangyi.ico" type="image/x-icon" />

 

基本上所有的现代浏览器都支持这种写法,例如firefox,ie9.

firefox:image

ie9:image

 

可惜的是普通用户用的基本上是360浏览器,搜狗浏览器,qq浏览器等。

搜狗浏览器:image

可以知道,我们在网站根目录下面的favicon.ico 起作用了,所以显示的是网站根目录下面的favicon.ico 图标。

打开360浏览器:image

奇怪了,google的图标哪里来的。。。。???

我们的faviconTestWeb 只有3个图标,一个是wangyi.ico.baidu.ico.favicon.ico(cnblogs的图标)。

为什么使用360显示的是google的图标?

 

其实360浏览器在浏览网页的时候,它会忽略端口,也就是说http://localhost:3529/home.html

firefox请求的是:link 的href所对应的图标。

搜狗浏览器等:请求的是http://localhost:3529/favicon.ico.

360浏览器等:请求的是http://localhost/favicon.ico,

也就是不管你请求的是http://host/home.html,还是http://host:333/home.html,还是http://host/test/home.html.

它请求的都是http://host/favicon.ico.

 

证据就是打开360se的安装目录:

image

 

 

所以如果你的网站favicon.ico 不起作用,或者是想要让favicon.ico 的兼容性更好,要使用下面几个步骤:

1:检查网站根目录下面的favicon.ico,也就是:http://host/favicon.ico.,而不是http://host/some/favicon.ico.

2:确保<link rel="icon" href="http://host/favicon.icotype="image/x-icon" />

 <link rel="shortcut icon" href="http://host/favicon.icotype="image/x-icon" />

使用的是http://host/favicon.ico

3:如果你的网站带端口,或者是测试版本的话,那么尤其要注意360等浏览器,它们在请求favicon.ico 的时候会忽略端口号的。

分类:  ASP.NET

本文转自左正博客园博客,原文链接:http://www.cnblogs.com/soundcode/p/4527633.html ,如需转载请自行联系原作者
相关文章
|
1月前
|
设计模式 前端开发 Java
Spring MVC——项目创建和建立请求连接
MVC是一种软件架构设计模式,将应用分为模型、视图和控制器三部分。Spring MVC是基于MVC模式的Web框架,通过`@RequestMapping`等注解实现URL路由映射,支持GET和POST请求,并可传递参数。创建Spring MVC项目与Spring Boot类似,使用`@RestController`注解标记控制器类。
36 1
Spring MVC——项目创建和建立请求连接
|
5月前
|
JSON 前端开发 Java
spring mvc 请求与响应
spring mvc 请求与响应
28 0
|
5月前
|
前端开发 Java Spring
Spring MVC 请求处理流程
Spring MVC 请求处理流程
33 0
|
6月前
|
前端开发 Java Spring
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
151 1
请求映射掌握:探讨Spring MVC中@RequestMapping注解的妙用
|
5月前
|
存储 前端开发 Java
Spring Web MVC入门(2)——请求(下)
Spring Web MVC入门(2)——请求
52 0
|
5月前
|
JSON 前端开发 Java
Spring Web MVC入门(2)——请求(上)
Spring Web MVC入门(2)——请求
33 0
|
6月前
|
前端开发 Java 应用服务中间件
掌握Spring MVC拦截器整合技巧,实现灵活的请求处理与权限控制!
掌握Spring MVC拦截器整合技巧,实现灵活的请求处理与权限控制!
|
6月前
|
JSON 前端开发 Java
开发必备技能:探索Spring MVC请求映射和参数绑定的奇妙之旅!
开发必备技能:探索Spring MVC请求映射和参数绑定的奇妙之旅!
|
6月前
|
负载均衡 前端开发 Java
字节后端面试题(前端发送请求到后端的过程(MVC),网关gateway作用,怎么解决跨域,各微服务组件作用)
字节后端面试题(前端发送请求到后端的过程(MVC),网关gateway作用,怎么解决跨域,各微服务组件作用)
428 0
|
前端开发
前端学习笔记202305学习笔记第三十一天-什么是mvc-mvc和M层请求数据2
前端学习笔记202305学习笔记第三十一天-什么是mvc-mvc和M层请求数据2
45 1