提供 HTML 页面是 WEB 应用最基本的功能,一个好看的页面要有 css 脚本去渲染,css、js 等文件都作为静态文件访问,使用下面两行代码实现:

files := http.FileServer(http.Dir("./public"))//注意指定相对路径或绝对路径
mux.Handle("/static/", http.StripPrefix("/static/", files))

访问static路径时如:http://localhost:8080/static/js/bootstrap.min.js 则会从指定的路径中寻找,工程目录结构如下:


templates 目录保存html模板,用于动态渲染,index 代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=9">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>橘猫军团</title>
    <link href="/static/css/bootstrap.min.css" rel="stylesheet">
    <link href="/static/css/font-awesome.min.css" rel="stylesheet">
</head>
<body>
<div class="container">

    {{ . }}

</div> <!-- /container -->

<script src="/static/js/jquery-3.6.1.min.js"></script>
<script src="/static/js/bootstrap.min.js"></script>
</body>
</html>

增加首页处理方法:

func indexTmpl(w http.ResponseWriter, request *http.Request) {
	t1, err := template.ParseFiles("./templates/index.html")
	if err != nil {
		log.Fatalln("模板解析失败", err)
	}
	t1.Execute(w, "Hello World")
}

在 main 方法中增加首页处理器:

mux.HandleFunc("/", indexTmpl)

访问首页:http://localhost:8080/



完整代码:https://github.com/timewang/go-http-curd