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 实现简单的伪静态化的主要内容,如果未能解决你的问题,请参考以下文章

aspnetcore 实现简单的伪静态化

PHP环境里的伪静态页面中,如何将JS变量传给其它变量的参数?

了解大型网站的页面静态化

Discuz X3.2 分区 gid 完美伪静态方法 Apache/Nginx

你了解大型网站的页面静态化吗?

nginx伪静态问题