.NET 绝对路径的配置

时间:2024-04-28 12:36:54

有时候因为用IIS配置网站,会导致一些全局引用有路径问题无法引用到。今天就说一下,关于全局引用的绝对路径的配置,譬如,由于IIS配置的虚拟路径,一些CSS,JS的引用找不到,又或者自定义的一些跳转出现404。这些问题很简单也很基础。

我们可以定义一个BasePage类,把一些页面公共的引用,提示信息放在里面,这样每个页面只要继承这个类,就可直接使用BasePage里的方法了(面向对象的三大特性之一:继承都知道的吧!)。首先定义一个绝对路径的字符串

    /// <summary>
/// 定义绝对路径
/// </summary>
public string ApplicationPath = "";

  然后初始化。注意一点,这里使用的派生类实现基类的方法。使用override重写此功能,使用base关键字继承基类的方法。

    /// <summary>
///初始化函数
/// </summary>
/// <param name="e"></param>
protected override void OnInit(EventArgs e)
{
base.OnInit(e);
InitApplication();
}

  最后实现绝对路径的赋值

 /// <summary>
/// 初始化请求路径
/// </summary>
public void InitApplication()
{
  #region 定义ApplicationPage
  this.ApplicationPath = HttpContext.Current.Request.ApplicationPath == "/" ? "" : HttpContext.Current.Request.ApplicationPath + "";
  #endregion
}

  此时ApplicationPath 就是网站的根名称。