国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > .NET > 正文

ASP.NET MVC3關(guān)于生成純靜態(tài)后如何不再走路由直接訪問靜態(tài)頁面

2024-07-10 13:24:31
字體:
供稿:網(wǎng)友

要解決這個(gè)問題,我們需要先了解ASP.NET應(yīng)用程序的生命周期,先看下面作者整理的一張圖片:

ASP.NET MVC3關(guān)于生成純靜態(tài)后如何不再走路由直接訪問靜態(tài)頁面

從圖中我們可以清楚的看到:通用IIS訪問應(yīng)用程序時(shí),每次的單個(gè)頁面URL訪問時(shí),都會(huì)先經(jīng)過HttpApplication 管線處理請(qǐng)求,走過BeginRequest 事件之后才會(huì)去走路由訪問具體的Controller和Action,最后結(jié)束的時(shí)候會(huì)請(qǐng)求EndRequest事件。下面用一張圖來表示這個(gè)順序:

ASP.NET MVC3關(guān)于生成純靜態(tài)后如何不再走路由直接訪問靜態(tài)頁面"HelloWorldModule: End of Request</font></h1>");
}
}
public void Dispose() { }
}


2. web.config中加入以下代碼,才會(huì)運(yùn)行自定義的管道處理類

復(fù)制代碼 代碼如下:


<httpModules>
<add type="MvcTest.MyHandler"/>
</httpModules>


運(yùn)行一下自己的代碼,看看效果你就全明白了!
補(bǔ)充:根據(jù)@小尾魚的提示,如果直接在自己的項(xiàng)目文件下生產(chǎn)了和URL中一樣的目錄文件,比如訪問:yourdomin.com/product/1.html,你的項(xiàng)目文件夾下真的存在product/1.html這個(gè)路徑,那么IIS會(huì)直接去請(qǐng)求這個(gè)靜態(tài)頁面,如果項(xiàng)目中使用了自定義的管道處理程序,那么這個(gè)靜態(tài)頁仍然會(huì)走我們的自定義管道處理程序,我們可以在這里通過緩存來實(shí)現(xiàn)要不要重新成長(zhǎng)靜態(tài)頁或刪除過期產(chǎn)品的靜態(tài)頁,如果不使用此方法,只能去寫執(zhí)行計(jì)劃,定時(shí)跑這些靜態(tài)文件了,修改Application_BeginRequest

復(fù)制代碼 代碼如下:


private void Application_BeginRequest(Object source,
EventArgs e)
{
// Create HttpApplication and HttpContext objects to access
// request and response properties.
HttpApplication application = (HttpApplication)source;
HttpContext context = application.Context;
string filePath = context.Request.FilePath;
string fileExtension =
VirtualPathUtility.GetExtension(filePath);
if (fileExtension.Equals(".html"))
{
//判斷緩存是否存在,不存在加入緩存,調(diào)用生成靜態(tài)的類和方法
//產(chǎn)品過期,移除靜態(tài)文件,302重定向
if (System.IO.File.Exists(context.Server.MapPath(filePath)))
{
context.Response.WriteFile(context.Server.MapPath(filePath));
context.Response.End();
}
}


思路大體如此。

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 萨嘎县| 监利县| 义马市| 苗栗县| 衢州市| 阿坝县| 南岸区| 郴州市| 祥云县| 衡阳县| 津南区| 武冈市| 江安县| 枝江市| 镇原县| 唐河县| 汨罗市| 临桂县| 双峰县| 京山县| 龙里县| 江安县| 扶绥县| 桐柏县| 无极县| 凉山| 交口县| 拉孜县| 文登市| 任丘市| 彭州市| 东莞市| 乌兰察布市| 中江县| 皮山县| 临西县| 扎囊县| 邵武市| 肃宁县| 沙坪坝区| 临澧县|