-
C#教程之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"
栏目列表
最新更新
C#基于接口设计三层架构Unity篇
C#线程 入门
C#读取静态类常量属性和值
C# 插件式编程
C# 委托与事件有啥区别?
C#队列学习笔记:队列(Queue)和堆栈(Stack
linq 多表分组左连接查询查询统计
C#队列学习笔记:MSMQ入门一
C# 基础知识系列- 1 数据类型
二、C#入门—基础语法
C# 在Word中添加Latex 数学公式和符号
inncheck命令 – 检查语法
基于UDP的服务器端和客户端
再谈UDP和TCP
在socket编程中使用域名
网络数据传输时的大小端问题
socket编程实现文件传输功能
如何优雅地断开TCP连接?
图解TCP四次握手断开连接
详细分析TCP数据的传输过程
SqlServer 利用游标批量更新数据
BOS只读状态修改
SQL Server等待事件—PAGEIOLATCH_EX
数据库多行转换为单一列
获取数据表最后最后访问,修改,更新,
计算经历的时间
SQL查询结果自定义排序
修改数据库默认位置
日期简单加或减
从日期获取年,月或日