123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- package utility
- import (
- "fmt"
- "github.com/gogf/gf/v2/errors/gcode"
- "github.com/gogf/gf/v2/errors/gerror"
- "github.com/gogf/gf/v2/frame/g"
- "github.com/gogf/gf/v2/net/ghttp"
- "net/http"
- )
- type (
- localHtmlRender struct{}
- Params = map[string]interface{}
- )
- const ErrorFilePath = "error.html"
- var (
- HtmlRender localHtmlRender
- )
- // Render 渲染html页面
- func (l *localHtmlRender) Render(r *ghttp.Request, fileName string, params ...Params) {
- var (
- err error
- res string
- usedParams Params
- )
- if len(params) > 0 {
- usedParams = params[0]
- }
- //当移动端未找到模版,渲染pc模版
- for _, filePath := range GetCommonRenderCachePaths(r.Request.UserAgent(), fileName) {
- res, err = g.View().Parse(r.Context(), filePath, usedParams)
- if gerror.Code(err) != gcode.CodeInvalidParameter {
- break
- }
- }
- if err != nil {
- g.Log().Error(r.Context(), "渲染%s页面异常 %v", fileName, err)
- l.RenderError(r, fmt.Errorf("页面异常"), params...)
- } else {
- r.Response.Write(res)
- }
- }
- // RenderError 渲染异常页面
- func (l *localHtmlRender) RenderError(r *ghttp.Request, err error, params ...Params) {
- var usedParams Params
- if len(params) > 0 {
- usedParams = params[0]
- }
- if usedParams == nil {
- usedParams = Params{}
- }
- usedParams["ErrMsg"] = err
- res, err := g.View().Parse(r.Context(), ErrorFilePath, usedParams)
- if err != nil {
- r.Response.Write(fmt.Sprintf("出错啦%v", err.Error()))
- } else {
- r.Response.Write(res)
- }
- }
- // NotFound 未找到页面
- func (l *localHtmlRender) NotFound(r *ghttp.Request) {
- http.NotFound(r.Response.ResponseWriter, r.Request)
- }
|