关于采用MVC开发默认路由导致首页部分文件访问失效的临时解决方案

最近开发中涉及了Mvc4的开发,其中的默认路由功能是很不错的东西,但是在实际应用中就出现了不少的问题。比如我们访问某网站http://www.abc.com,虽然路由会帮助自动转向Home/Index目录,但是浏览器的地址并没有变化,这个时候问题就出现了。如果你还有相对站点的还有其它子目录的时候,或者该mvc应用是放在虚拟目录中执行的时候,就会出现页面中设置"../某子目录名/文件名"无法访问的情况。只有当你在地址栏完整的输入路径,如:http://www.abc.com/Home/Index时,页面才会正常。目前个人研究出来应该是mvc路由机制导致的问题(当然也许是我个人习惯设置目录的问题),不管原因如何,总之问题确实是出现了。网上找了很多也没有解决,有个网友也问过,无人解答。这是mvc4用的人不多么?还是什么情况。不管了,我自己研了一套临时的解决办法,其原理就是人为的把简化首页地址补全,用JS来实现的,只需要把代码加入到Home/Index页面中的顶部位置优先执行就可以了。代码如下:

 1 <script>
 2 var loc = window.location.href.toString();
 3     if (loc.indexOf("Home") <= 0) {
 4         if (loc.lastIndexOf("/") == loc.length - 1) {
 5             window.location.href = loc + "Home/Index";
 6         }
 7         else {
 8             window.location.href = loc + "/Home/Index";
 9         }
10     }
11 </script>

代码谈不上简单易行,仅仅是个人为了解决问题临时弄的。因为时间有限没有去寻找更加好的解决办法。再此提供此办法的同时,也有请各位朋友在有更好的方法时,请不吝赐教,谢谢!

关于采用MVC开发默认路由导致首页部分文件访问失效的临时解决方案,布布扣,bubuko.com

时间: 2025-01-18 15:22:57

关于采用MVC开发默认路由导致首页部分文件访问失效的临时解决方案的相关文章

springboot2.0 使用拦截器后,导致静态文件访问不到的解决方案

1 package com.leenleda.ward.tv.admin.interceptor; 2 3 import com.leenleda.ward.tv.common.config.LeenledaConfig; 4 import org.springframework.beans.factory.annotation.Autowired; 5 import org.springframework.context.annotation.Configuration; 6 import o

MPLS VPN环境下BGP导入默认路由问题

本次模拟实验的初衷是验证同一个VPN环境下,多个ISP互联时导入默认路由的可行性问题,在模拟实验中触发另外一个问题---关于BGP导入默认路由的方式讨论.(不同的ISP之间跨域互联使用Option A的方式进行互联,实际上相当于一台CE作用,为了方便模拟实际情况,采用AS 50和AS 60来模拟不同的ISP,接入到AS 34中) 实验需求: (1)  同一个VRF之间可以实现互通性: (2)  往不同的VRF导入默认路由时,路由选路的方式 (3)  BGP导入默认的方式总结 拓扑环境描述: 1.

基于GNS3思科默认路由器实现的默认路由

实验拓扑:实验说明:R1和R2之间的网段为24位的12.1.1.0直连网段,若没有配置路由协议,R1和R2之间的环回接口是不能Ping通的,本实验是在R1上配置默认路由,实现R1ping通R2的环回接口.实验步骤:1. 为各路由器配置IP地址,并保证其直连的连通性:在R1配置IP地址:在R2配置IP地址:在R1上验证两台路由器的连通性(保证前提两台路由器直连是连通的):2.在R1上配置默认路由,使得R1能够访问R2背后的环回网段:3. 在R1和R2上查看各自的路由表:R1的路由表:R2的路由表:

ASP.Net MVC开发基础学习笔记(3):Razor视图引擎、控制器与路由机制学习

首页 头条 文章 频道                         设计频道 Web前端 Python开发 Java技术 Android应用 iOS应用 资源 小组 相亲 频道 首页 头条 文章 小组 相亲 资源 设计 前端 Python Java 安卓 iOS 登录 注册 首页 最新文章 经典回顾 开发 Web前端 Python Android iOS Java C/C++ PHP .NET Ruby Go 设计 UI设计 网页设计 交互设计 用户体验 设计教程 设计职场 极客 IT技术

ASP.Net MVC开发基础学习笔记:三、Razor视图引擎、控制器与路由机制学习

一.天降神器“剃须刀” — Razor视图引擎 1.1 千呼万唤始出来的MVC3.0 在MVC3.0版本的时候,微软终于引入了第二种模板引擎:Razor.在这之前,我们一直在使用WebForm时代沿留下来的ASPX引擎或者第三方的NVelocity模板引擎. Razor在减少代码冗余.增强代码可读性和Visual Studio智能感知方面,都有着突出的优势.Razor一经推出就深受广大ASP.Net开发者的喜爱. 1.2 Razor的语法 (1)Razor文件类型:Razor支持两种文件类型,分

mvc默认路由说明

一.命名参数规范+匿名对象 routes.MapRoute(name: "Default",url: "{controller}/{action}/{id}", defaults: new { controller = "Home", action = "Index", id = UrlParameter.Optional } ); 构造路由然后添加 Route myRoute = new Route("{contr

php7扩展开发[11] MVC之路由解析和加载文件

```场景:想要用C实现PHP的一个MVC结构的路由解析和加载文件的功能,一共要解决几个问题1.由于MVC要加载多个C文件,所以要修正config.m4,修改config.m4内容第十行左右,去掉dnl,PHP_ARG_WITH(dora, for route support,dnl Make sure that the comment is aligned:[  --with-route             Include dora support])在下面追加到以下内容:if test

每天一点点之vue框架开发 - vue-router路由进阶(路由别名、跳转、设置默认路由)

路由别名 别名的作用:防止文件路径泄露 使用之前显示如下: 使用别名后就只会显示到域名,后面的文件是不会显示的,这就起到保护的作用了 在main.js中的路由中添加name来创建别名 const routes = [ {path:'/footer',name:footerLink,component:Footer} ] 在组件中的路由中通过对象属性来实现路由 <router-link :to="{name:homeLink}">Mirror微申</router-lin

ASP.Net MVC开发基础学习笔记:五、区域、模板页与WebAPI初步

一.区域—麻雀虽小,五脏俱全的迷你MVC项目 1.1 Area的兴起 为了方便大规模网站中的管理大量文件,在ASP.NET MVC 2.0版本中引入了一个新概念—区域(Area). 在项目上右击创建新的区域,可以让我们的项目不至于太复杂而导致管理混乱.有了区域后,每个模块的页面都放入相应的区域内进行管理很方便.例如:上图中有两个模块,一个是Admin模块,另一个是Product模块,所有关于这两个模块的控制器.Model以及视图都放入各自的模块内.可以从上图中看出,区域的功能类似一个小的MVC项