提供 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)
完整代码:https://github.com/timewang/go-http-curd