asp.net网页静态化

一。①:首先要有这个文件URLRewriter.dll,如果没有,赶快到网上下载一个,并将其放到下面的bin目录里面,并且将其引用添加到下面里面;

  ②:下面就是Web.Config文件的配置了,当然,配置过程相当简单:

1、在Web.Config的<system.web>和</system.web>添加以下节点:

 
<httpHandlers>
      <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
      <add verb="*" path="*.html" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
 </httpHandlers>
 

2、在Web.Config的<configuration>和</configuration>添加以下节点:

 
 <configSections>
    <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
  </configSections>
  <RewriterConfig>
    <Rules>
      <RewriterRule>
        <LookFor>~/d(/d+)/.html</LookFor>
        <SendTo>~/Default.aspx?MyID=$1</SendTo>
      </RewriterRule>
    </Rules>
  </RewriterConfig>
 

设置完以上两个步骤,就基本可以运行了,其中<RewriterRule/>标签里面就是重写的一个模块,<LookFor/>里面的是重写后的地址,而<SendTo/>则是原地址。

 

3、配置IIS解析.html文件
IIS配置:网站->属性->虚拟目录->配置(G)...->映射->通配符应用程序映射->添加
可执行文件:c:/windows/microsoft.net/framework/v2.0.50727/aspnet_isapi.dll
扩展名为:.html

确认文件是否存在:不选.

4、以上配置好之后就可以通过以下方式来访问了

例如用户输入 hostname/d11.html,服务器会把他重写为http://hostname/default.aspx?id=11。换句话说用户输入http://hostname/d11.html,实际访问的是http://hostname/default.aspx?id=11

 

二。

using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using System.Web.UI.HtmlControls; using System.IO; namespace Web.Admin { public partial class Admin_MakeIndex : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { CommFun.IsAdmin(); if (!IsPostBack) { string url = Request.Url.AbsoluteUri.Substring(0, Request.Url.AbsoluteUri.LastIndexOf("/admin")); //获取网址 url += "/default.aspx"; //首页文件 string text; System.Net.WebRequest wReq = System.Net.WebRequest.Create(url); System.Net.WebResponse wResp = wReq.GetResponse(); //注意要先 using System.IO; System.IO.Stream respStream = wResp.GetResponseStream(); System.IO.StreamReader reader = new System.IO.StreamReader(respStream, System.Text.Encoding.GetEncoding("gb2312")); text = reader.ReadToEnd(); string path = System.Web.HttpContext.Current.Server.MapPath("../default.html"); using (System.IO.StreamWriter sw = new System.IO.StreamWriter(path, false, System.Text.Encoding.UTF8)) { if (text.Trim() != "") { sw.Write(text); Response.Write("首页生成成功!"); } } } } } }

 

三、同二类似只是把模板分成很多小的部分,生成时拼接小的模板,如头部、版权等等,这个方法可以参照211news新闻发布系统的做法。

四、利用js-ajax,例子如下:
  <script>  
  var oXmlHttp = new ActiveXObject("Microsoft.XMLHTTP");  
  oXmlHttp.open("GET","http://www.163.com", false);  
  oXmlHttp.send()  
  var oStream = new ActiveXObject("ADODB.Stream");  
  if(oStream == null)  
  alert("您的机器不支持ADODB.Stream.")  
  else  
  {  
  oStream.Type=1;  
  oStream.Mode=3;  
  oStream.Open() ;  
  oStream.Write(oXmlHttp.responseBody);  
  oStream.Position= 0;  
  oStream.Type= 2;  
  oStream.Charset="gb2312";  
  var result= oStream.ReadText();  
  oStream.Close();  
  oStream = null;  
  var aa = window.open("","")  
  document.write(result);  
  aa.document.write(result);  
  }  
  </script>

你可能感兴趣的:(String,null,url,asp.net,Path,IIS)