卷土重来之staticHtml基础使用教程
前段时间发布了一个asp.net生存html缓存的东西,老实说坑了蛮多的人,bug比较多, 经过这段时间的测试与改进,应该到了可以使用的地步了,
欢迎大家测试与使用,下面我介绍使用教程,对了,这里感谢一下猴子,他帮我测试了很多。
首先请将StaticHtml.dll添加引用,或者拷贝到bin目录中,下面是具体配置说明
注意:下面的配置步骤都是在web.config中操作。
1. 添加StaticHtml配置文件读取节点
在configuration/configSections添加如下节点
<section name="staticHtml" type="StaticHtml.StaticHtmlSection,StaticHtml"/>
添加StaticHtml
2. 添加HttpModule
在configuration/system.web/httpModules中,添加
<add name="staticHtml" type="StaticHtml.HttpModule,StaticHtml"/>
如果这样配置,用浏览器访问任意一个页面,如果根目录下没有生成staticHtml_log.txt这个文件,请将上面的节点,添加到configuration/system.webServer/httpModule中
当然,请确保你服务器能正确加载httpmodule,因为有可能你的服务器配置,根本就不能加载任何httpmodule。请参考asp.net mvc配置
3. 配置自己站点的生成缓存规则
在configuration中添加如下节点
<staticHtml skip="admin/" run="on">
<rule name=" index ">
<patten type="StaticHtml.RegexPatten,StaticHtml" pars="RegPatten=index \.aspx"/>
<store type="StaticHtml.MemStore,StaticHtml"/>
<genKey type="StaticHtml.UrlMd5GenKey,StaticHtml"/>
<expire type="StaticHtml.TimeExpire,StaticHtml" pars="Second=300"/>
</rule>
<rule name="content">
<patten type="StaticHtml.RegexPatten,StaticHtml" pars="RegPatten=article/"/>
<store type="StaticHtml.FileStore,StaticHtml" pars="Path=cacheHtml_article/"/>
</rule>
</staticHtml>
上面的配置,定义了2个规则,
第一个规则,
<rule name=" index ">
<patten type="StaticHtml.RegexPatten,StaticHtml" pars="RegPatten=index\. aspx "/>
<store type="StaticHtml.MemStore,StaticHtml"/>
</rule>
规则,这个规则的名字叫做index,
patten节点 如果url中匹配index\. aspx 这个正则表达式,则缓存。
store节点 将缓存的html保存到内存中
genKey 节点 将request.rawRul通过md5加密生成key,在statichtml非常重要,代表了一个唯一的缓存页面,
expire节点 意味着缓存300秒(5分钟)
第二个规则
<rule name="content">
<patten type="StaticHtml.RegexPatten,StaticHtml" pars="RegPatten=article/"/>
<store type="StaticHtml.FileStore,StaticHtml" pars="Path=cacheHtml_article/"/>
</rule>
这个规则的名字叫做content(规则名字不能重复)
patten 节点 如果url中匹配article/这个正则表达式的,就缓存
store节点 将缓存的保存到根目录下面/cacheHtml_article中
StaticHtml节点 skip属性 admin/ 代表如果url能匹配这个正则表达式,则不缓存。
提示:staticHtml节点skip 属性,patten节点的 pars属性, 都是可以配置正则表达式的, 就是一个纯粹的正则表达式,可以写的很复杂,也可以很简单。
4. 其他补充
1:下篇文字我将详细介绍如何扩展statichtml
2:下载statichtml.dll(这是最新版,使用gzip压缩存储,大大减少磁盘占用,网站流量。)
3:源码还是在github上https://github.com/tianqiq/StaticHtml
4:经网友测试发现,在4.0,4.5 .net上会出现刷新后,就空白的情况。所以请将项目的.net版本设置为3.5,即可。(真没想到这么多童鞋是用4.0甚至4.5了)
更新:
现在已经修复4.0以上刷新后,空白的情况, 欢迎测试与使用。(2013/7/21)
代码已经更新到github上, 请从这里下载最新dll http://url.cn/H5TSeH
卷土重来之staticHtml基础使用教程的更多相关文章
- SOA体系结构基础培训教程-规范标准篇
引子:本文是<SOA体系结构基础培训教程>第3章<SOA标准与规范>课件,版权所有,转载请注明出处. 随着SOA在业界的应用日益广泛,SOA的标准化问题也成为各界日益关注的焦点 ...
- [置顶] IOS 基础入门教程
IOS 基础入门教程 教程列表: IOS 简介 IOS环境搭建 Objective C 基础知识 创建第一款iPhone应用程序 IOS操作(action)和输出口(Outlet) iOS - 委托( ...
- Python基础入门教程
Python基础入门教程 Python基础教程 Python 简介 Python环境搭建 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 Python 循 ...
- SOA体系结构基础培训教程
SOA体系结构基础培训教程-规范标准篇 引子:本文是<SOA体系结构基础培训教程>第3章<SOA标准与规范>课件,版权所有,转载请注明出处. 随着SOA在业界的应用日益广泛,S ...
- Angularjs 2 绝对零基础的教程(1):从安装配置开始
写在前面 适合人群: 1. 愿意未来从事前端工作,并以此开拓自己未来职业 2. 有任何一种编程语言基础 3. 喜欢简单粗暴学一门实用的技术,而不是做科研. Angular 2 比 Angular 1 ...
- React Native基础&入门教程:初步使用Flexbox布局
在上篇中,笔者分享了部分安装并调试React Native应用过程里的一点经验,如果还没有看过的同学请点击<React Native基础&入门教程:调试React Native应用的一小 ...
- 【转】IAR Embedded Workbench for ARM 8.22.1 基础使用教程
@2018-12-15 [小记] IAR Embedded Workbench for ARM 8.22.1 基础使用教程
- Linux基础入门教程
Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux:Linux初级,也就是入门linux前提是需要有一些计算机硬件相关的知识或是有一下 ...
- Git入门基础详情教程
前言 写了一篇文章<一篇文章了解Github和Git教程>还觉得不错,继续写了<为了Github默默付出,我想了解你>,那么继续写Git 基础知识. Git 官网:https: ...
随机推荐
- 我的AngularJS 学习之旅
我的AngularJS 学习之旅 基础篇 1.Angular的 起源 2.比较Web 页面实现的几种方式 3.一些基本术语 4.Angular与其他框架的兼容性 5.总结 6.综合实例 很早之前就 ...
- shell脚本一
在一些复杂的Linux维护工作中,大量重复的输入和交互操作不但费时费力,容易出错.这时候就需要用到脚本. 编写脚本的好处: 批量的处理,自动化的完成维护,减轻管理员的负担. linux的shell脚 ...
- web前端基础知识 jQuery
通过之前的学习我们已经了解了html.css.javascript的相关知识:本次我们就共同学习进阶知识:jQuery~ 一.什么是jQuery? jQuery其实就是一个轻量级的javascript ...
- Slackware Linux or FreeBSD 配置中文环境。
配置中文环境. Slackware Linux 如果在控制面板的语言与地区选项中没有找到中文,那说明在安装系统选择软件的时候没有将国际语言支持包选上,可以从slackware的安装盘或ISO文件中提取 ...
- CentOS7下Apache及Tomcat开启SSL
安装: 复制代码 yum install -y openssl #使用openssl可手动创建证书 yum install -y httpd yum install -y mod_ssl 防火墙打开8 ...
- java 反射机制
1.反射机制是什么: (1)反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能 ...
- 纪勇破解QQ号问题
试题描述 来到了新学校,才相处不到一个月,jy就对oyjy一见钟情.于是向oyjy问QQ号.当然身为创(实)新(验)一班的同学,oyjy还是要考考jy.她给了纪勇一个加密后的QQ号,让纪勇解密,解密规 ...
- 关于Java 里的String和对象
之前老师在课堂上讲过关于Java的引用,但是很遗憾,木有认真听啊,所以就在学习Java的过程中迷惑迷惑...最近好像明白一点Java的引用是怎么回事了.以下仅是我个人的理解,如果不对,还请不吝赐教. ...
- 【MongoDB for Java】Java操作MongoDB
上一篇文章: http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过 ...
- linux 连接到阿里云服务器
当Windows拥有xshell软件可以连接到你的远程服务器时,Linux其实自己带有的ssh就可以连接: 具体命令是: ssh root@60.2.5.201.81然后输入你服务器的密码:××××× ...