虽然完全静态化URL的网页有打开速度快的优点,但是网站内容巨大的话,势必会使网站的体积变大很多,会有很多的静态化文件,网站迁移的话很麻烦
另一方面如果网站内容很多的时候修改模板的话,再次静态化的时候会是一个比较大的工作量。实际使用的话还是需要根据自己实际需要来选取。
配置路由信息,注意顺序,伪静态的路由要在默认路由之前
app.UseMvc(routes => { routes.MapRoute("Notice", "/Notice/{path}.html", new { controller = "Home", action = "NoticeDetails" }); routes.MapRoute(name: "areaRoute", template: "{area:exists}/{controller=Home}/{action=Index}"); routes.MapRoute( name: "default", template: "{controller=Home}/{action=Index}"); });
控制器:
/// <summary> /// 公告详情 /// </summary> /// <param name="path">访问路径</param> /// <returns></returns> public async Task<ActionResult> NoticeDetails(string path) { if (string.IsNullOrWhiteSpace(path)) { return RedirectToAction("Notice"); } try { var noticeBll = HttpContext.RequestServices.GetService<IBLLNotice>(); var notice = await noticeBll.FetchAsync(n => n.NoticeCustomPath == path.Trim()); if (notice != null) { notice.NoticeVisitCount += 1; await noticeBll.UpdateAsync(notice, x => x.NoticeVisitCount); return View(notice); } else { return RedirectToAction("Notice"); } } catch (Exception ex) { Logger.Error(ex); throw; } }
实际效果:
https://reservation.weihanli.xyz/Notice/test-notice.html