aspnetcore 实现简单的伪静态化
Posted wwwan
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了aspnetcore 实现简单的伪静态化相关的知识,希望对你有一定的参考价值。
虽然完全静态化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
以上是关于aspnetcore 实现简单的伪静态化的主要内容,如果未能解决你的问题,请参考以下文章
PHP环境里的伪静态页面中,如何将JS变量传给其它变量的参数?