前段时间发布了一个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基础使用教程的更多相关文章

  1. SOA体系结构基础培训教程-规范标准篇

    引子:本文是<SOA体系结构基础培训教程>第3章<SOA标准与规范>课件,版权所有,转载请注明出处. 随着SOA在业界的应用日益广泛,SOA的标准化问题也成为各界日益关注的焦点 ...

  2. [置顶] IOS 基础入门教程

    IOS 基础入门教程 教程列表: IOS 简介 IOS环境搭建 Objective C 基础知识 创建第一款iPhone应用程序 IOS操作(action)和输出口(Outlet) iOS - 委托( ...

  3. Python基础入门教程

    Python基础入门教程 Python基础教程 Python 简介 Python环境搭建 Python 基础语法 Python 变量类型 Python 运算符 Python 条件语句 Python 循 ...

  4. SOA体系结构基础培训教程

    SOA体系结构基础培训教程-规范标准篇 引子:本文是<SOA体系结构基础培训教程>第3章<SOA标准与规范>课件,版权所有,转载请注明出处. 随着SOA在业界的应用日益广泛,S ...

  5. Angularjs 2 绝对零基础的教程(1):从安装配置开始

    写在前面 适合人群: 1. 愿意未来从事前端工作,并以此开拓自己未来职业 2. 有任何一种编程语言基础 3. 喜欢简单粗暴学一门实用的技术,而不是做科研. Angular 2 比 Angular 1 ...

  6. React Native基础&入门教程:初步使用Flexbox布局

    在上篇中,笔者分享了部分安装并调试React Native应用过程里的一点经验,如果还没有看过的同学请点击<React Native基础&入门教程:调试React Native应用的一小 ...

  7. 【转】IAR Embedded Workbench for ARM 8.22.1 基础使用教程

    @2018-12-15 [小记] IAR Embedded Workbench for ARM 8.22.1 基础使用教程

  8. Linux基础入门教程

    Linux基础入门教程 --------- Linux学习路径 Linux学习者,常常不知道自己改怎么学习linux:Linux初级,也就是入门linux前提是需要有一些计算机硬件相关的知识或是有一下 ...

  9. Git入门基础详情教程

    前言 写了一篇文章<一篇文章了解Github和Git教程>还觉得不错,继续写了<为了Github默默付出,我想了解你>,那么继续写Git 基础知识. Git 官网:https: ...

随机推荐

  1. 自己写一个swap函数交换任意两个相同类型元素的值 对空指针的使用 字节大小的判断(二)了解原理

    验证的代码: #include <stdio.h> int main(){ char c = 'z'; ) + (c << ) + () + 'a'; printf(" ...

  2. iis发布网站怎么支持.json文件

  3. Mysql如何向存在外键的数据表中插入数据

    1.创建表 CREATE TABLE `trn_comment_msg` ( `comMsgId` ) NOT NULL AUTO_INCREMENT COMMENT '评论消息主键', `msgId ...

  4. MongoDB win安装后无法远程连接访问

    mongoDB安装后无法远程连接访问,原因是端口没有开放允许连接的权限 开启允许连接的权限: 管理工具-高级win防火墙

  5. 亲手使用Sencha Touch + phonepag开发Web APP随笔 -- 第一个APP

    参考博文: [Phonegap+Sencha Touch] 移动开发1.准备工作 [Phonegap+Sencha Touch] 移动开发2.PhoneGap/Cordova初步使用   经过差不多1 ...

  6. myeclipse2014新建maven项目

    1,首先安装maven,并配置. 2,新建maven project. 3,选择maven-archetype-webapp. 4,填写afrifact ID即为项目名称. 5,finish后 bui ...

  7. 总结工作中常见的linux命令

    本文是总结下自己在工作中遇到的常见linux 命令,会持续更新! 1.文件路径切换 进入 cd 返回上一级  cd .. 2.复制 cp 源文件名 目标文件夹 cp log.log test5 3.编 ...

  8. Git中pull对比fetch和merge

    本文参考于:http://www.zhanglian2010.cn/2014/07/git-pull-vs-fetch-and-merge/ 使用git fetch和git pull都可以更新远程仓库 ...

  9. rabbimq连接问题处理

    今天遇到一个rabbitmq的连接问题,之前自己写代码测试的时候并没有出现过,所以做个小总结,由于是其他项目测试部署环境发现的问题,所以一开始排查还是有点坑... 客户端上新建一个rabbitmq的c ...

  10. 通过队列解决Lucene文件并发创建索引

    public sealed class SearchIndexManager { private static readonly SearchIndexManager searchIndexManag ...