对于 golang 开发网站来说,间接用 golang 来解决输入内容,很难满足咱们多样化的页面成果需要的,因而,咱们须要先给咱们的博客网站设置一个模板引擎。模板引擎的作用就是让咱们能够应用 html 标记语言来编排咱们的页面,包含 html、css、js 等的使用。
咱们在 Serve 函数中,减少如下代码
pugEngine := iris.Django("./template", ".html")
if config.ServerConfig.Env == "development" {
// 测试环境下动静加载
pugEngine.Reload(true)
}
bootstrap.Application.RegisterView(pugEngine)
这个代码块的作用是抉择应用类 Django 的模板引擎语法,模板寄存的目录是 template,模板的后缀的通用的.html 文件后缀,如果咱们在 config.json 中配置了 env 为 development 的话,则动静加载模板。动静加载模板的一个益处是,咱们在调试和批改模板的时候,不须要重启 golang 我的项目,就能够通过刷新浏览器来看到批改后的成果。如果咱们不启用动静加载,则每次批改模板,都须要重启 golang 我的项目能力看到改变成果。然而动静加载会影响网站加载性能,因为每次拜访,他都须要从新解析模板。所以咱们就有了 env 参数配置,在本地调试的时候,应用 development 模式,动静加载模板,不便调试,在服务器上的生产环境,咱们并不需要常常改变代码,所以在服务器上,咱们就应用 production 模式,他在启动的时候就将模板加载到内存中,每次拜访就能够放慢访问速度了。
增加模板引擎代码后的 Serv 函数如下:
func (bootstrap *Bootstrap) Serve() {bootstrap.Application.Logger().SetLevel(bootstrap.LoggerLevel)
bootstrap.LoadRoutes()
pugEngine := iris.Django("./template", ".html")
if config.ServerConfig.Env == "development" {
// 测试环境下动静加载
pugEngine.Reload(true)
}
bootstrap.Application.RegisterView(pugEngine)
bootstrap.Application.Run(iris.Addr(fmt.Sprintf("127.0.0.1:%d", bootstrap.Port)),
iris.WithoutServerError(iris.ErrServerClosed),
iris.WithoutBodyConsumptionOnUnmarshal,
)
}
当初咱们曾经将模板引擎注册到 iris 中了,接下来,我就就能够应用 html 标记语言来编写模板了。接着咱们在后面曾经创立的 template 文件夹中,建设一个 index.html 文件,并写上一些内容:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello World</title>
</head>
<body>
Hello World!
</body>
</html>
同样的,咱们先尝试输入 Hello World 试试看。
index.html 文件写完了,咱们还须要在控制器里援用,能力让他失效,咱们再批改下 IndexPage 函数,让他调用咱们编写好的 index.html:
func IndexPage(ctx iris.Context) {ctx.View("index.html")
}
再次点击右上角的绿色实心三角形运行起来,来浏览器看看是否失常:
不出意外,咱们还是能看到 Hello World。
如果不出意外的话,咱们仍然是看到 Hello World!,如果能顺利看到 Hello World,祝贺你,模板引擎抉择和配置实现。
残缺的我的项目示例代码托管在 GitHub 上,须要查看残缺的我的项目代码能够到 github.com/fesiong/goblog 上查看,也能够间接 fork 一份来在下面做批改。