使用Go语言快速构建静态资源服务

 更新时间:2025年08月15日 09:18:30   作者:程序员爱钓鱼  
在 Web 开发中,除了提供 API 接口外,往往还需要对外提供静态资源服务,比如:CSS,JS,图片等,本文将用 Gin 框架 演示如何快速构建一个静态资源服务,希望对大家有所帮助

在 Web 开发中,除了提供 API 接口外,往往还需要对外提供静态资源服务,比如:

  • CSS 样式文件
  • JavaScript 脚本
  • 图片、字体等静态资源

Go 的 net/http 包和 Gin 框架都提供了方便的方式来托管这些静态文件。

本篇我们将用 Gin 框架 演示如何快速构建一个静态资源服务。

一、功能目标

使用 Gin 提供一个静态资源目录,让用户能直接访问 CSS、JS、图片。

演示 HTML 页面引入这些静态资源。

支持前端直接访问 /static/... 路径获取文件。

二、项目结构

假设我们的项目目录结构如下:

project/
│── main.go
│── static/
│     ├── css/
│     │    └── style.css
│     ├── js/
│     │    └── app.js
│     └── images/
│          └── logo.png
└── templates/
      └── index.html

三、代码实现

package main

import (
    "github.com/gin-gonic/gin"
    "net/http"
)

func main() {
    r := gin.Default()

    // 1. 加载模板
    r.LoadHTMLGlob("templates/*")

    // 2. 提供静态文件服务
    //   /static 对应项目下的 static 目录
    r.Static("/static", "./static")

    // 3. 首页路由
    r.GET("/", func(c *gin.Context) {
        c.HTML(http.StatusOK, "index.html", nil)
    })

    // 启动服务器
    r.Run(":8080")
}

四、HTML 模板示例

templates/index.html

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta charset="UTF-8">
    <title>静态资源示例</title>
    <!-- 引入 CSS -->
    <link rel="stylesheet" href="/static/css/style.css" rel="external nofollow" >
</head>
<body>
    <h1>欢迎来到 Go 静态资源服务示例</h1>
    <!-- 引入图片 -->
    <img src="/static/images/logo.png" alt="Logo" width="150">

    <!-- 引入 JS -->
    <script src="/static/js/app.js"></script>
</body>
</html>

五、静态资源示例

static/css/style.css

body {
    background-color: #f5f5f5;
    font-family: Arial, sans-serif;
    text-align: center;
}
h1 {
    color: #333;
}

static/js/app.js

document.addEventListener("DOMContentLoaded", function() {
    console.log("JavaScript 已加载");
});

六、运行与访问

运行服务:

go run main.go

在浏览器访问:http://localhost:8080/

你会看到页面正常加载了 CSS 样式、图片和 JavaScript 脚本。

静态资源也可以直接访问:

http://localhost:8080/static/images/logo.png http://localhost:8080/static/css/style.css

七、总结

  • Gin 提供 Static() 方法一行就能完成静态文件托管。
  • 静态文件路径映射和 URL 前缀可以灵活配置。
  • 结合 HTML 模板,可以很方便地构建完整的前端页面服务。

到此这篇关于使用Go语言快速构建静态资源服务的文章就介绍到这了,更多相关Go静态资源服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 基于Go语言编写一个能在Windows上录音的小程序

    基于Go语言编写一个能在Windows上录音的小程序

    这篇文章主要为大家详细介绍了如何基于Go语言编写一个能在Windows上录音的小程序,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下
    2026-03-03
  • Golang Gin框架获取请求参数的几种常见方式

    Golang Gin框架获取请求参数的几种常见方式

    在我们平常添加路由处理函数之后,就可以在路由处理函数中编写业务处理代码了,但在此之前我们往往需要获取请求参数,本文就详细的讲解下gin获取请求参数常见的几种方式,需要的朋友可以参考下
    2024-02-02
  • Go 项目目录布局保姆级教程

    Go 项目目录布局保姆级教程

    这篇文章主要为大家介绍了Go 项目目录布局保姆级教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12
  • Go1.21新增slices包的用法详解

    Go1.21新增slices包的用法详解

    Go 1.21新增的 slices 包提供了很多和切片相关的函数,可以用于任何类型的切片,这篇文章主要来和大家介绍一下slices包中相关函数的用法,需要的可以参考一下
    2023-08-08
  • 在 Go 语言中使用 regexp 包处理正则表达式的操作

    在 Go 语言中使用 regexp 包处理正则表达式的操作

    正则表达式是处理字符串时一个非常强大的工具,而 Go 语言的 regexp 包提供了简单而强大的接口来使用正则表达式,本文将介绍如何在 Go 中使用 regexp 包来编译和执行正则表达式,以及如何从文本中匹配和提取信息,感兴趣的朋友一起看看吧
    2023-12-12
  • Go语言exec包的具体使用

    Go语言exec包的具体使用

    在Go中执行外部命令、调用系统程序,核心就是使用标准库os/exec,它能启动进程、传递参数、读写输入输出、控制超时,是脚本化、自动化、调用第三方工具的必备能力,下面就来详细的介绍一下
    2026-06-06
  • Golang安装和使用protocol-buffer流程介绍

    Golang安装和使用protocol-buffer流程介绍

    这篇文章主要介绍了Golang安装和使用protocol-buffer过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-09-09
  • Go部署多环境开发的项目实战

    Go部署多环境开发的项目实战

    在 Go 项目的开发过程中,能够在不同的环境(如开发、测试、生产)中进行灵活部署是至关重要的,不同环境通常需要不同的配置,下面就来详细的介绍一下Go部署多环境
    2026-02-02
  • Go协程的底层原理及分析

    Go协程的底层原理及分析

    文章解释了操作系统中的进程、线程和协程的概念及其区别,并详细描述了Go语言中协程的工作原理和调度机制,包括G-M-P模型、抢占式调度、基于信号的抢占式调度等
    2026-05-05
  • go time.Sleep睡眠指定时间实例详解(小时级到纳秒级)

    go time.Sleep睡眠指定时间实例详解(小时级到纳秒级)

    golang的休眠可以使用time包中的sleep,下面这篇文章主要给大家介绍了关于go time.Sleep睡眠指定时间(小时级到纳秒级)的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-11-11

最新评论