代码如下:
生成静态页代码:///   <summary> 
    ///   将Url放到Path目录下,保存为FileName 
    ///   </summary> 
    ///   <param   name= "Url "> aspx页面url </param> 
    ///   <param   name= "Path "> 生成html文件的保存路径 </param> 
    ///   <param   name= "FileName "> 生成html文件的文件名 </param> 
    ///   <returns> </returns> 
    public bool ExecAspxToHtml(string Url, string Path, string FileName)
    {
        try
        {
            StringWriter strHTML = new StringWriter();
            System.Web.UI.Page myPage = new Page();       //System.Web.UI.Page中有个Server对象,我们要利用一下它 
            myPage.Server.Execute(Url, strHTML);               //将asp_net.aspx将在客户段显示的html内容读到了strHTML中 
            StreamWriter sw = new StreamWriter(Path + FileName, true, System.Text.Encoding.UTF8);
            //新建一个文件Test.htm,文件格式为GB2312 
            sw.Write(strHTML.ToString());                           //将strHTML中的字符写到Test.htm中 
            strHTML.Close();                                                     //关闭StringWriter   
            sw.Close();                                                                         //关闭StreamWriter   
            return true;
        }
        catch
        {
            return false;
        }
    }点击按钮生成if (ExecAspxToHtml("../Default.aspx", "../", "index.htm"))
        {
          //...
        }
        else
        {
            //...
        }在网站根目录生成index.htm的文件后,打开出现问题。
第一:css路径问题.aspx下的路径为  <link href="css/style.css" rel="stylesheet" type="text/css" />。
 而.htm的路径为<link href="../css/style.css" rel="stylesheet" type="text/css" /> 所以css不能正常使用
第二:图片路径问题 .aspx下为绑定图片 查看HTML文件后路径为:src="case/case_20110702060135934.jpg"
 而生成的.htm的路径为src="../case/case_20110702060152819.jpg" 所以不能正常显示。
我知道是路径的问题,但是不知道怎么改。上面生成静态页方法中的路径该怎么写,我需要把生成的静态页放在网站根目录下

解决方案 »

  1.   

    CSS如果是根目录下的文件夹的话
    aspx页面路径用绝对路径:
    /css/style.css图片也一样
      

  2.   

    sw.Write(strHTML.ToString().replace("../",""));   
    当然用正则更好
      

  3.   

    1.在后台生成的时候用查找替换
    2.前面加http://
    3....
      

  4.   

    <link href="css/style.css" rel="stylesheet" type="text/css" />
    如果css文件夹是在网站根目录下面  href=/css/style.css
    图片同上
      

  5.   

    CSS如果是根目录下的文件夹的话
    aspx页面路径用绝对路径:
    /css/style.css图片也一样