ASP.NET中母版页中引用文件路径的问题
2013-11-20 10:15
429 查看
模版页中难免要引用CSS、脚本、图片等
①这些文件的路径如果简单的使用相对路径,那么如果引用模版的目录一发生变化,这些路径就会出错;
②asp.net支持一种相对于应用程序的路径,以波浪线开头的,形如"~/",使用它即可解决,例如:
③当然如果你觉得每个路径都要写成动态的不爽,而又正好有页面基类的话,倒是可以换一种方式:
所有的路径直接书写为相对于应用程序目录的路径,形如:
<link rel="stylesheet" media="screen" type="text/css" href="~/css/global.css" />当然默认HTML是不支持的这样的路径方式的,这时候就要借助PageBase了(BasePage要继承System.Web.UI.Page,各个子页面则需要继承BasePage就可以使用里面的变量和方法了)
代码如下(好像是从DNN的代码里面抠出来的)
①这些文件的路径如果简单的使用相对路径,那么如果引用模版的目录一发生变化,这些路径就会出错;
②asp.net支持一种相对于应用程序的路径,以波浪线开头的,形如"~/",使用它即可解决,例如:
<link rel="stylesheet" media="screen" type="text/css" href="<%=ResolveClientUrl("~/css/global.css") %>" />
③当然如果你觉得每个路径都要写成动态的不爽,而又正好有页面基类的话,倒是可以换一种方式:
所有的路径直接书写为相对于应用程序目录的路径,形如:
<link rel="stylesheet" media="screen" type="text/css" href="~/css/global.css" />当然默认HTML是不支持的这样的路径方式的,这时候就要借助PageBase了(BasePage要继承System.Web.UI.Page,各个子页面则需要继承BasePage就可以使用里面的变量和方法了)
代码如下(好像是从DNN的代码里面抠出来的)
public abstract class PageBase : Page { protected override void Render(HtmlTextWriter writer) { StringWriter stringWriter = new StringWriter(); HtmlTextWriter htmlWriter = new HtmlTextWriter(stringWriter); base.Render(htmlWriter); string html = stringWriter.ToString(); #region 转换相对路径 MatchCollection collection = Regex.Matches(html, "<(a|link|img|script|input|form).[^>]*(href|src|action)=(\\\"|'|)(.[^\\\"']*)(\\\"|'|)[^>]*>", RegexOptions.IgnoreCase); foreach (Match match in collection) { if (match.Groups[match.Groups.Count - 2].Value.IndexOf("~") != -1) { string url = this.Page.ResolveUrl(match.Groups[match.Groups.Count - 2].Value); html = html.Replace(match.Groups[match.Groups.Count - 2].Value, url); } } #endregion writer.Write(html); } }
相关文章推荐
- asp.net中涉及子文件夹的母版页和相对路径文件引用问题
- ASP.NET 2.0中母版页中引用文件路径的问题
- ASP.NET 2.0中母版页中引用文件路径的问题(对原处理方法中的bug进行了修改)
- asp.net中涉及子文件夹的母版页和相对路径文件引用问题
- ASP.NET 2.0中母版页中引用文件路径的问题(收集)
- ASP.NET 2.0中母版页中引用文件路径的问题
- asp.net中涉及子文件夹的母版页和相对路径文件引用问题
- Asp.net母版页引用JS/CSS 路径问题
- ASP.NET母版页引用js引用图片等的[相对路径] 问题
- [转]asp.net母板页引用文件的路径问题
- ASP.Net 类库引用文件路径问题及解决方案
- asp.net母板页引用文件的路径问题
- Asp.Net母版页中引用文件路径注意事项
- ASP.NET母版页引用js引用图片等的[相对路径] 问题
- asp.net母板页引用文件的路径问题
- Asp.net页面中引用js文件无效的问题的解决方法
- 母版页中的js和css文件引用路径的问题
- ASP.NET知识点:母版页的路径问题
- 母版页引用外部文件的路径问题,如加载javascript文件时
- 母版页中引用图片、外部js、css文件的路径问题