路径问题

前几天做用户控件的时候遇到了路径问题:别人使用用户控件的时候js添加不上,原因是路径不同导致的

最后我是通过把相对路径转换为了绝对路径解决了该问题:

示例:

后台代码:

//调用GetAbsolutePath方法,把你所需要调用的文件的路径都转换为绝对路径,赋值给变量 protected string jquery = GetAbsolutePath("/master/js/jquery.js"); protected string leftMenu = GetAbsolutePath("/master/css/leftMenu.css"); protected string vMenu = GetAbsolutePath("/master/js/vMenu.js"); protected void Page_Load(object sender, EventArgs e) { } /// <summary> /// 将相对路径转换为绝对路径 /// 注:最终得到任何场合都可以正常链接的路径(不论将应用程序设置成虚拟目录还是网站的根目录) /// 例如:设置为虚拟目录的时候, ///"master/js/jquery.js"=> "/ZDDWeb/master/js/jquery.js" ///设置为网站根的时候,"master/js/jquery.js" => "/master/js/jquery.js" /// </summary> /// <param name="path">从根开始的相对路径</param> /// <returns>绝对路径</returns> /// <remarks>created by zdd, 2011-7-26</remarks> public static string GetAbsolutePath(string path) { // 如果是一个绝对路径直接返回 if (path.ToLower().StartsWith("http://")) return path; // 去掉前导的 "/" if (path.StartsWith("/")) path = path.Substring(1); // 整个应用程序的路径 string appPath = HttpContext.Current.Request.ApplicationPath; // 得到绝对路径 if (appPath.EndsWith("/")) return appPath + path; else return appPath + "/" + path; }



前台调用变量:

<head id="Head1"> <title></title> <script src='<% = jquery %>' type="text/javascript"></script> <link href='<% = leftMenu %>' rel="stylesheet" type="text/css" /> <script src='<% = vMenu %>' type="text/javascript"></script> </head>

这样在别人使用你的用户控件的时候直接拖拽你的用户控件即可,不需要再添加这些文件。

注:为什么要使用变量而不直接在前台调用后台方法呢?

因为前台没有可触发调用该方法的事件,但是后台的类变量则可在页面加载之前执行,也就执行了该方法,故我们再此使用类变量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值