一个request,但是controller被执行了多次的问题
原文发布时间为:2011-09-25 —— 来源于本人的百度文章 [由搬家工具导入]
这两天竟然被一个bug整疯了,因为项目调试的时候,通过 sql profiler 查看,竟然执行了多次的相同 查询语句, 然后发现原来 一次请求时候,竟然多次进去controller,多次访问路由。一直找不到原因,怎么会多次访问呢?后来又采用了 抓包 fiddler工具发现了有一个.png的请求进入了我那个路由,然而这个文件并不存在,所以进入了我的路由,然后才恍然大悟页面上面有这个
<img alt="" src="logo.png" class="logo">
然后路由刚好匹配我的
public ActionResult Index(string id = "")
{
return View();
}
导致了一次访问这个页面,多次请求这个路由。当文件不存在的时候,会通过路由,因为我的图片路径写错了
http://stackoverflow.com/questions/7333343/shouldnt-mvc-ignore-images-by-default
http://forums.asp.net/t/1536510.aspx/1?how+to+do+not+route+images+css+js+etc
因为在开发的时候难免会复制一下美工写好的html,而且他们写的都是相对路径,为了避免调试出现问题,狠一点,开发的时候把所有扩展名的文件都过滤掉,不让经过路由。
在global文件中 忽略有扩展名的路由,如下:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.Ignore("{*allfiles}", new { allfiles = @".*\.(.*)(/.*)?" });
一个request,但是controller被执行了多次的问题的更多相关文章
- spring mvc DispatcherServlet详解之二---request通过Controller获取ModelAndView过程
整个spring mvc的架构如下图所示: 上篇文件讲解了DispatcherServlet通过request获取控制器Controller的过程,现在来讲解DispatcherServletDisp ...
- 插入函数概念 接收一个callback,然后外面函数,接一个对象,和一个next,外面都执行完了,继续执行下一个函数,相当于一个链状体,插入了一个函数的概念 | log4js 输出 等于 console.info
插入函数概念 接收一个callback,然后外面函数,接一个对象,和一个next,外面都执行完了,继续执行下一个函数,相当于一个链状体,插入了一个函数的概念 app.use(function (ctx ...
- Jmeter 学习笔记 1 - Logic Controller -组织执行场景
using this website to practice performance testing: http://advantageonlineshopping.com/#/ Jemeter ho ...
- jquery 实现重复点击一个元素时不重复执行效果
jquery 实现重复点击一个元素时不重复执行效果 这需要用到jquery的stop方法 实例 停止当前正在运行的动画: $("#stop").click(function(){ ...
- panguan(判官):一个自研的任务执行引擎的工程实践
来某厂接近半年了,几乎没写过C++代码,说实话还真的有点手生.最近刚好有一个需求,然而我感觉我也没有办法用C++以外的语言去实现它.于是还是花了几天时间用C++完成编码,这是一个简单的任务执行引擎,它 ...
- 假设result 是一个float型变量,value是一个int型变量。执行以下赋值语句以后,变量value将是什么类型?为什么?
假设result 是一个float型变量,value是一个int型变量.执行以下赋值语句以后,变量value将是什么类型?为什么? 在执行这条语句的过程中,保存在vulue变量中的值被读取出来并转化为 ...
- sedsed 一个更好理解sed执行过程的工具
官网:http://aurelio.net/projects/sedsed/ 这个上面好多学习的资料 嘿嘿 留着慢慢看 昨晚在看sed的具体执行过程,看到有hold space,pattern ...
- spring 默认情况下事务是惟一的 同一个方法里面第一个sql开启后 在执行完 将事务传递给下一个sql
spring 默认情况下事务是惟一的 同一个方法里面第一个sql开启后 在执行完 将事务传递给下一个sql
- Spring MVC controller 被执行两次
interceptor 被执行两次 后来发现 时controller被执行两次 后来发现是jsp页面有个: <img src="#" > 导致被执行两次. 解决方案:去 ...
- 从一个简单的main方法执行谈谈JVM工作机制
本来JVM的工作原理浅到可以泛泛而谈,但如果真的想把JVM工作机制弄清楚,实在是很难,涉及到的知识领域太多.所以,本文通过简单的mian方法执行,浅谈JVM工作原理,看看JVM里面都发生了什么. 先上 ...
随机推荐
- http请求中客户端真实的ip
private String getRemoteAddr() { String ip = ""; String unknow = "unknown"; try ...
- mysql基础,数据表的类型
- 《TensorFlow实战》中AlexNet卷积神经网络的训练中
TensorFlow实战中AlexNet卷积神经网络的训练 01 出错 TypeError: as_default() missing 1 required positional argument: ...
- 浅谈JavaScript字符串拼接
本文给大家汇总介绍了几种javascript中字符串拼接的方法,十分的简单实用,有需要的小伙伴可以参考下. 在JavaScript中会经常遇到字符串拼接,但是如果要拼接的字符串过长就比较麻烦了. 如果 ...
- DeepFaceLab报错,CUDA driver is insufficient 解决方法!
DeepFaceLab出错,虽然错误提示很长很长,但是无非两种情况,一种是驱动没装好,一种是显存配置不够. CUDA driver version is insufficient for CUDA r ...
- ThinkPHP函数I代码优化
ThinkPHP/Common/common.php 文件 I函数,主要用来获取一些gpc请求的变量的,函数有一部分代码是过滤变量的,每次都运行一次,其实是没有必要的. 如果你每次都像这样的方式调用的 ...
- 20.VUE学习之-变异方法push的留言版实例讲解
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Python的while else
python中有一个其独有的功能,while else. 它的作用是判断是循环是否被终止,如果没有被终止,那么就会执行else,反之则不会执行.还是用一段代码来解释吧 else被执行: count = ...
- 使用 CAST
使用 CAST: CAST ( expression AS data_type ) 使用 CONVERT: CONVERT (data_type[(length)], expression [, st ...
- python中迷茫的编码问题
1.理清一些知识点: python默认的编码格式: ASCII(py2) unicode(py3) 查看默认编码:sys.defaultencoding 修改默认编码:#coding = utf-8 ...