/// <summary> /// 根据条件判断是否允许生成HTML /// </summary> /// <param name="routes"></param> /// <returns></returns> protected bool IsBuildHtml(ResultExecutedContext context) { if (MinInterval <= 0) { return(true); } var path = Common.GetWebRootPath(context.RouteReplace(Template)); var fi = new FileInfo(path); if (!fi.Exists) { return(true); } var time = fi.LastWriteTime.DateDiff(DateTime.Now); return(time >= TimeSpan.FromSeconds(MinInterval)); }
/// <summary> /// 写HTML /// </summary> /// <param name="context"></param> /// <param name="viewResult"></param> protected void WriteHtml(ResultExecutedContext context, ViewResult viewResult) { var _logger = Web.GetService <ILogger <RazorHtmlStaticAttribute> >(); try { var html = viewResult?.ToHtml(context.HttpContext, IsPartialView); if (string.IsNullOrWhiteSpace(html)) { return; } var path = Common.GetWebRootPath(context.RouteReplace(Template)); FileHelper.Create(path, html); } catch (Exception ex) { _logger.LogError(ex, "生成html静态文件失败"); } }