Url相对路径的问题总结

最让人担心的是,有时候必须使用绝对路径(如asp.net中的master内容),因为处于开发过程,没有目标地址,也就无法配置绝对路径。有时确必须使用相对路径。

但是相对路径写好了,却存在各种各样的问题。
今天,我介绍大家两种不一样的方法。
首先介绍最简单的就是HTML5里新增的Base标签。
我们看它的用法,必须包含在head标签中。

代码如下:

<head>
<base target="_blank" href="www.Test.com" />
</head>

最重要的是,base标签配置好以后,浏览器将不再使用当前文档内的相对URL,而使用指定的基本 URL 来解析所有的相对 URL。
看上图,如果你的<a>、<img>、<link>、<form> 标签中的URL为"chamychen.jpg",那么浏览器会在链接地址时自动在此URL前加上base标签中指定的href地址,其打开方式也将遵循Base标签中设定的target属性。那么以后,我们可以在master,mvc可以在layout.shtml中设置base标签,来解决头疼的绝对径路和相对径路的问题。我们以后,可以把所有的相对径路,都设置成从网站根目录下开始。Base中配置网址就可以,解决所有的相对路径和绝对路径的问题了。
针对不支持html5的浏览器,其实我们可以使用C#写几句代码,就可以获取网站根目录的地址了:


代码如下:

public static string HostUrl()
{
String path = HttpContext.Current.Request.Url.Scheme + "://" +
HttpContext.Current.Request.Url.Authority +
(HttpContext.Current.Request.ApplicationPath == "/" ? "" : HttpContext.Current.Request.ApplicationPath);
return path;
}

综上所述:你只需要使用“网址+相对路径”的方式就能够处理因相对径路引发的问题。
如:http://www.Test.com/ab/abc.jpg
可以使用Base标签:
<head>
<base target="_blank" href="www.Test.com" />
</head>

相对路径写成:<img src="ab/abc.jpg"/>
如果使用多C#来支持:则为HostUrl()+"ab/abc.jpg"

(0)

相关推荐

  • Url相对路径的问题总结

    最让人担心的是,有时候必须使用绝对路径(如asp.net中的master内容),因为处于开发过程,没有目标地址,也就无法配置绝对路径.有时确必须使用相对路径. 但是相对路径写好了,却存在各种各样的问题. 今天,我介绍大家两种不一样的方法. 首先介绍最简单的就是HTML5里新增的Base标签. 我们看它的用法,必须包含在head标签中. 复制代码 代码如下: <head> <base target="_blank" href="www.Test.com&quo

  • JavaScript获取当前url根目录(路径)

    主要用到Location 对象,包含有关当前 URL 的信息,是 Window 对象的一个部分,可通过 window.location 属性来访问. 方法一 (window.document.location.href/window.document.location.pathname) ------------转自网络 function getRootPath_web() { //获取当前网址,如: http://localhost:8083/uimcardprj/share/meun.jsp

  • java解析出url请求的路径和参数键值对类(解析出url请求的路径,包括页面)

    复制代码 代码如下: package RequestPackage; import java.util.HashMap; import java.util.Map; public class CRequest { /** * 解析出url请求的路径,包括页面 * @param strURL url地址 * @return url路径 */ public static String UrlPage(String strURL) { String strPage=null; String[] arr

  • 使用springboot访问图片本地路径并映射成url

    目录 springboot访问图片本地路径并映射成url 增加一个配置类: 运行该工程: SpringBoot设置url访问本地图片 创建WebMvcConfig配置类 springboot访问图片本地路径并映射成url springboot如何访问本地路径并获取图片等静态资源文件的url?代码写法如下: 增加一个配置类: @Configuration public class WebMvcConfigurer extends WebMvcConfigurer { @Override publi

  • Spring请求路径带参数URL使用注解的写法说明

    目录 Spring请求路径带参数URL使用注解的写法 正确写法: 错误写法: 小结: Spring注解@RequestMapping请求路径映射问题 Spring请求路径带参数URL使用注解的写法 调用外部平台http接口,Post请求,url 为路径带有参数的形式: http://xxxxxx.com/openApi/auth/getUserAuth?version=v1.0 使用 Retrofit 框架(本文使用的2.6.2版本)发送Post请求,可以在 @Post 注解中直接带上参数,如下

  • Web里URL空格的转换方法

    看URL是HttpUtility.UrlEncode将空格转换成了"+"号,原因找到就着手解决Bug.引用: 复制代码 代码如下: fileName = HttpUtility.UrlEncode(fileName, Encoding.UTF8); fileName = fileName.Replace("+", "%20"); 通过Replace替换解决,虽然问题解决了,但这并不是一个很好的方法,如果文件夹或文件名中包含"+"

  • AngularJS利用Controller完成URL跳转

    具体写法举例: 1.js定义一个controller function MyCtrl($scope, $location) { $scope.jumpToUrl = function(path) { //TODO:add code here }; } 2.html里面应用controller <div ng-controller='MyCtrl'> <button ng-click="jumpToUrl('/signin')">signin</button

  • 详解context root修改无效web修改项目路径(eclipse)

    通过eclipse修改web的url访问路径 今天做SpringMVC 基础跳转网页的时候发现了一个问题,就是eclipse访问url路径的问题,默认用maven创建好项目,项目里的context root修改名字后,访问的url无效依旧不能访问. 如下图 于是解决方案来了: //先双击下图中的Tomcat //双击后效果 //这里第一次配置的可能是空的,可以右面点击Edit进行添加 //修改后成功即可访问,如下图所示 感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

  • java 获取路径的各种方法(总结)

    (1).request.getRealPath("/");//不推荐使用获取工程的根路径 (2).request.getRealPath(request.getRequestURI());//获取jsp的路径,这个方法比较好用,可以直接在servlet和jsp中使用 (3).request.getSession().getServletContext().getRealPath("/");//获取工程的根路径,这个方法比较好用,可以直接在servlet和jsp中使用

  • Asp.net中Request.Url的各个属性对应的意义介绍

    1.简单的环境搭建 在本地IIS上配置了一个网站:主机名为wjnhome.com,端口88,然后建了一个虚拟目录指向同一站点,虚拟目录名称为virtual,配置host为127.0.0.1 wjnhome.com 所以地址就为:http://jb51.net:88/virtual/urldemo.aspx?id=2#top 2.编写简单的代码 复制代码 代码如下: //虚拟目录的路径 Response.Write("<strong>Request.ApplicationPath:&l

随机推荐