zoukankan      html  css  js  c++  java
  • MVC 带扩展名的路由无法访问

      在MVC中,路由是必不可少的,而且MVC对Url的重写非常方便,只需要在路由中配置相应的规则即可。假如我们需要给信息详情页配置路由,代码如下:

                routes.MapRoute(
                    name: "Info",
                    url: "info/{id}.html",
                    defaults: new { controller = "Index", action = "Info", id = UrlParameter.Optional }
                );

    运行结果图:

    无法匹配路由规则  

      运行后发现系统找不到我们要的页面,而且调试后发现根本就没有匹配到我们配置的路由,这是因为IIS把.css文件、.js文件、.jpg以及.html等格式的请求都交给了StaticFile进行处理,而不去匹配路由规则,导致无法访问。

      解决方法:

      解决这个问题很简单,只需要在Web.config中添加一个配置节点并将其值设为true即可,代码如下:

      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />
      </system.webServer>

      再次运行,页面被正常访问,亲测可行。

    路由正常访问

      不过近段时间发现,当路由和静态文件同时存在的时候会有冲突,访问页面时一会走静态文件,一会走路由,目前还在寻找原因和解决办法。

      热点缓存:就是通过对数据的分析,得到访问热点,然后针对热点和业务逻辑进行缓存处理,例如把页面静态化(~晓菜鸟 :) )

      假如/info/1.html这个页面是目前访问最高的一个页面,结合业务分析可以对这个页面进行静态化处理,目前采用的方式是在站点下面新建一个Info文件夹,然后在里面存放1.html的静态文件,测试发现,当我们访问/info/1.html这个页面时,有时会读取静态文件,有时会走路由,非常的不稳定。如果您有什么想法或建议,请直接在评论区留言,谢谢!

  • 相关阅读:
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    Python for Data Science
    软件工程实践总结
  • 原文地址:https://www.cnblogs.com/52XF/p/4956355.html
Copyright © 2011-2022 走看看