访问静态资源

package main

import (
   "net/http"
   "path/filepath"
)

func main() {
   // 获取静态资源目录的硬盘路径
   path, _ := filepath.Abs(".")
   path = filepath.Dir(path) + "/static"

   // 设置静态资源目录别名
   // 重要说明①:目录别名必须以“/”结尾
   // 重要说明②:目录别名和实际名可以相同,但若不同则只能通过别名访问静态资源
   alias := "/public/"

   // 注册访问静态资源Handler
   handler := http.FileServer(http.Dir(path))
   handler = http.StripPrefix(alias, handler)
   http.Handle(alias, handler)

   // 注册访问普通页面Handler
   http.HandleFunc("/test.html", func(writer http.ResponseWriter, request *http.Request) {
      _, _ = writer.Write([]byte("hello, world")) // 在页面输出“hello, world”
   })

   // 启动HTTP服务器,服务端口号8080
   err := http.ListenAndServe(":8080", nil)
   if err != nil {
      panic("启动HTTP服务器失败")
   }
}

// ========== 目录结构·开始 ========== //
// ├── cmd
// │   └── main.go
// ├── static
// │   └── img
// │       └── demo.png
// ========== 目录结构·结束 ========== //

// ========== 总结 ========== //
// 1、可使用同一个服务端口来处理静态资源和普通页面的访问请求:
//    静态资源URL → http://localhost:8080/public/img/demo.png
//    普通页面URL → http://localhost:8080/test.html
// 2、支持设置多个静态资源目录。

Copyright © 2025 码农人生. All Rights Reserved