澳门葡京浅谈URL重写 及 静态化。浅谈URL重写 及 静态化,浅谈url重写静态。

大家好,欢迎关注本身的个人blog!

浅谈URL重写 及 静态化,浅谈url重写静态

大家好,欢迎关注自己的个人blog!

1.url还写,首先我是优先以Application_BeginRequest中捕获url重写了平整

 
protected void Application_BeginRequest(Object sender, EventArgs e)
        {
            string url = Request.AppRelativeCurrentExecutionFilePath; //
            Match match = Regex.Match(url, @"~/BookList2_(\d+)\.aspx");
            if (match.Success)
            {
                int id = Convert.ToInt32(match.Groups[1].Value);
                Context.RewritePath(string.Format("/BookList2.aspx?categoryId={0}", id));
            }

        }

 

盗用了大神写好的片个UrlRewrite类。。。

不敢独自享,分享之…

public class UrlRewriter : HtmlTextWriter
    {
        public UrlRewriter(HtmlTextWriter writer)
            : base(writer)
        {
            this.InnerWriter = writer.InnerWriter;
        }

        /// <summary>
        /// 重写基类的WriteAttribute()方法
        /// </summary>
        /// <param name="name">要写的属性的名称</param>
        /// <param name="value">要写的属性的值</param>
        /// <param name="fEncode"></param>
        public override void WriteAttribute(string name, string value, bool fEncode)
        {
            if (name.ToLower() == "action")
            {
                var context = HttpContext.Current;
                if (context.Items["ActionRewrite"] == null)
                {
                    value = context.Request.RawUrl;//原始路径
                    context.Items["ActionRewrite"] = true;//设置标记,已经重写action属性.

                }
            }

            base.WriteAttribute(name, value, fEncode);
        }
    }

 

public class UrlRewriterControlAdapter:ControlAdapter
    {
        protected override void Render(HtmlTextWriter writer)
        {
            base.Render(new UrlRewriter(writer));
        }
    }

 

黏贴至清目录,url重写搞定,原理性的东东,等待自己看明白之后跟大家说说
呵呵…. 看谁先看懂…

接下来,我哪怕从头了图书详情页的页面静态化的工作。

2.页面静态化就好整治点了,就是合二为一接字符串。最后按照一定的存放规则以大成好之html文件存放即可。

此地自己动用了模版页的运用,注意模板页调用js css img
等公事之时节,记得写绝对路径,不然会报错,因为 相对路径已经摸索不顶
这些文件了,因为以得的条条框框来存放在html页了。

下一场,晚上返回反正闲在也是闲在望url重写,一看微软发出特别简单的采用。有个UrlRewrite.dll组件可以轻松就url重写的干活,于是乎,我便心血来潮,开始按部就班博客大牛的道搞起了。

原本真的坏粗略,config里面添加规则就是ok了。

可是,当自家点击自己别的静态页的时候,就闹问题了。错误提示….

1.url再度写,首先自己是先行以Application_BeginRequest中捕获url重写了平整

从不啊扩充名“.html”注册的变型提供程序。可以以 machine.config 或 web.config 中之 <compilation><buildProviders> 节注册一个。请确保所报之提供程序有所包含值“Web”或“All”的 BuildProviderAppliesToAttribute 特性。

哈哈,搞昏我…不了解原理的本人,眼泪掉下来….

后来网上搜索了稍稍方法,都未曾搞定的自家,将代码一一改了归来了。。。。

伺机还牛B的人,前来解惑…

http://www.bkjia.com/C\_jc/1202637.htmlwww.bkjia.comtruehttp://www.bkjia.com/C\_jc/1202637.htmlTechArticle浅谈URL重写 及 静态化,浅谈url重写静态
大家好,欢迎关注我之个人blog!
1.url再次写,首先自己是先期在Application_BeginRequest中抓获url重写了规则…

 
protected void Application_BeginRequest(Object sender, EventArgs e)
        {
            string url = Request.AppRelativeCurrentExecutionFilePath; //
            Match match = Regex.Match(url, @"~/BookList2_(\d+)\.aspx");
            if (match.Success)
            {
                int id = Convert.ToInt32(match.Groups[1].Value);
                Context.RewritePath(string.Format("/BookList2.aspx?categoryId={0}", id));
            }

        }

 

盗用了大神写好之星星个UrlRewrite类。。。

莫敢独自享,分享之…

public class UrlRewriter : HtmlTextWriter
    {
        public UrlRewriter(HtmlTextWriter writer)
            : base(writer)
        {
            this.InnerWriter = writer.InnerWriter;
        }

        /// <summary>
        /// 重写基类的WriteAttribute()方法
        /// </summary>
        /// <param name="name">要写的属性的名称</param>
        /// <param name="value">要写的属性的值</param>
        /// <param name="fEncode"></param>
        public override void WriteAttribute(string name, string value, bool fEncode)
        {
            if (name.ToLower() == "action")
            {
                var context = HttpContext.Current;
                if (context.Items["ActionRewrite"] == null)
                {
                    value = context.Request.RawUrl;//原始路径
                    context.Items["ActionRewrite"] = true;//设置标记,已经重写action属性.

                }
            }

            base.WriteAttribute(name, value, fEncode);
        }
    }

 

public class UrlRewriterControlAdapter:ControlAdapter
    {
        protected override void Render(HtmlTextWriter writer)
        {
            base.Render(new UrlRewriter(writer));
        }
    }

 

黏贴至清目录,url重写搞定,原理性的东东,等待自己看明白之后与大家说说
呵呵…. 看谁先看懂…

接下来,我就算起了书籍详情页的页面静态化的行事。

2.页面静态化就吓整治沾了,就是合二为一接字符串。最后按照一定的寄放规则以异常成好之html文件存放即可。

此处自己以了模版页的采用,注意模板页调用js css img
等文件之时段,记得写绝对路径,不然会报错,因为 相对路径已经查找不至
这些文件了,因为以一定的平整来存放在html页了。

然后,晚上归反正闲在啊是悠闲在探url重写,一看微软出坏粗略的应用。有只UrlRewrite.dll组件可以轻松完成url重写的行事,于是乎,我便心血来潮,开始按博客大牛的主意将起了。

本来真的好简单,config里面添加规则就是ok了。

然,当我点击自己别的静态页的时候,就生问题了。错误提示….

从没也扩大名“.html”注册之变提供次。可以于 machine.config 或 web.config 中的 <compilation><buildProviders> 节注册一个。请保管所注册的提供次有所包含值“Web”或“All”的 BuildProviderAppliesToAttribute 特性。

哈哈哈,搞昏我…不明了原理的自家,眼泪掉下来….

新生网上查找了有些方法,都并未搞定的自我,将代码一一改了回去了。。。。

候再牛B的总人口,前来解惑…

 

笔者介绍:半路学IT,做开发3年,先下车于同样家共享单车店,做后台开发!

 

 我起来了一个公众号,欢迎各位有志同道合朋友,关注!不定期分享工作,和自得故事!

 

澳门葡京 1

相关文章