Golang:go静态文件处理

go静态文件处理

一.前言

golang在没有处理静态文件前是访问不到的,必须用到net/http包下的
http.Handle(),http.StripPrefix(),http.FileServer(),http.Dir()

二.示例

  • 在这里插入图片描述
  • http.StripPrefix 会截取输入的前缀,http.FileServer 会自动在目录里面寻找文件,配合http.Dir使用
package main

import (
   "fmt"
   "html/template"
   "net/http"
)
// html处理器
func htmlHandle(w http.ResponseWriter, r *http.Request) {
   // 解析一个模版文件
   // Must函数用于包装返回(*Template, error)的函数/方法调用,它会在err非nil时panic,一般用于变量初始化:
   // ParseFiles函数创建一个模板并解析filenames指定的文件里的模板定义。返回的模板的名字是第一个文件的文件名(不含扩展名),内容为解析后的第一个文件的内容。至少要提供一个文件。如果发生错误,会停止解析并返回nil。
   t := template.Must(template.ParseFiles("index.html"))
   // Execute方法将解析好的模板应用到data上,并将输出写入wr。如果执行时出现错误,会停止执行,但有可能已经写入wr部分数据。模板可以安全的并发执行。
   t.Execute(w, "我是被传递的一段话")
}


func main() {
   // 路由器
   http.HandleFunc("/", handle)
   http.HandleFunc("/html", htmlHandle)
   // 静态文件处理器
   http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
   // 开启server服务
   http.ListenAndServe(":8081", nil)
}
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <meta http-equiv="X-UA-Compatible" content="IE=edge">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>Document</title>
   <link rel="stylesheet" href="/static/css/layui.css">
   <script src="/static/js/layui.js"></script>

</head>
<body>
   <p style="color: red;">我是一个模版文件:{{.}}</p>
   <div>
       <img src="/static/image/docker.png" alt="图片" style="width: 200px;">
   </div>
</body>
</html>
  • 访问正常在这里插入图片描述
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值