首页 新闻 会员 周边 捐助

请教:mvc5中实现静态化时静态文件的路由问题

0
悬赏园豆:60 [已解决问题] 解决于 2016-10-24 18:11

问题描述:项目中web模块、wap模块。其中wap是在area中。现在需要静态化web和wap的页面;要求的URL:www.domain.com/item/001.html和m.domain.com/item/001.html;生成静态文件的方法是IResultFilter将静态文件分别保存到www文件夹和wap文件夹。现在的问题是:我该如何配置路由,如果静态文件存在,直接访问静态文件。如果不存在,就走路由并进入action执行。

万德福儿的主页 万德福儿 | 初学一级 | 园豆:9
提问于:2016-10-24 17:41
< >
分享
最佳答案
0

1.静态化为html本地文件,你怎么更新呢?

2.如果route 吧item/{id}.html指向你的action,那如何访问静态html文件呢?

 

1.你这个是静态化之后就不要更新了么。

2.1.action 判断当前request.filepath本地对应文件是否存在,不存在静态化,存在读取返还

2.2.拦截http 404错误,判断当前route是不是你指定的这个规则,是就到action执行静态化,action返回html文件流。route不用配置

2.3.全站手动静态化,就不存在这个问题了

 

 

收获园豆:50
czd890 | 专家六级 |园豆:14488 | 2016-10-24 17:52

1更新文件的时候会自动删除对应的静态页,从而从新。

 

2.3不倾向于手动静态化的方案

万德福儿 | 园豆:9 (初学一级) | 2016-10-24 18:00

@qust_青岛: 

那就采用2.1的方式,然后看你楼上的回复,增加一个hashset,存在的文件id set进去,不用说太细,你懂的

czd890 | 园豆:14488 (专家六级) | 2016-10-24 18:09

还有,你说更新文件的时候自动删除对应静态页,那为什么不能更新的时候自动更新静态页呢?

czd890 | 园豆:14488 (专家六级) | 2016-10-24 18:10

@calvinK: 这个和主动生成关系不大,我想实现的是同一个URL,可以优先访问静态文件,不存在的话就进入路由。

万德福儿 | 园豆:9 (初学一级) | 2016-10-24 18:12
其他回答(1)
0

如果url一模一样.那路由搞不了.只能写过滤器或者在进入mvc之前beginrequest.先查找是否有静态文件.如果有直接返回静态文件.

收获园豆:10
吴瑞祥 | 园豆:29449 (高人七级) | 2016-10-24 17:45

每次查找是否有静态文件,需要读一次磁盘,感觉代价不小。是不是我这样的方案有问题?mvc一般静态化是怎么样处理的呢?

支持(0) 反对(0) 万德福儿 | 园豆:9 (初学一级) | 2016-10-24 17:58

@qust_青岛: 你说的好像iis直接请求html文件没有io操作似得..

支持(0) 反对(0) 吴瑞祥 | 园豆:29449 (高人七级) | 2016-10-24 18:40

@吴瑞祥: 恩,是这么回事

支持(0) 反对(0) 万德福儿 | 园豆:9 (初学一级) | 2016-10-24 18:41
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册