使用Go語言快速構建靜態(tài)資源服務
在 Web 開發(fā)中,除了提供 API 接口外,往往還需要對外提供靜態(tài)資源服務,比如:
- CSS 樣式文件
- JavaScript 腳本
- 圖片、字體等靜態(tài)資源
Go 的 net/http 包和 Gin 框架都提供了方便的方式來托管這些靜態(tài)文件。
本篇我們將用 Gin 框架 演示如何快速構建一個靜態(tài)資源服務。
一、功能目標
使用 Gin 提供一個靜態(tài)資源目錄,讓用戶能直接訪問 CSS、JS、圖片。
演示 HTML 頁面引入這些靜態(tài)資源。
支持前端直接訪問 /static/... 路徑獲取文件。
二、項目結構
假設我們的項目目錄結構如下:
project/
│── main.go
│── static/
│ ├── css/
│ │ └── style.css
│ ├── js/
│ │ └── app.js
│ └── images/
│ └── logo.png
└── templates/
└── index.html
三、代碼實現(xiàn)
package main
import (
"github.com/gin-gonic/gin"
"net/http"
)
func main() {
r := gin.Default()
// 1. 加載模板
r.LoadHTMLGlob("templates/*")
// 2. 提供靜態(tài)文件服務
// /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>靜態(tài)資源示例</title>
<!-- 引入 CSS -->
<link rel="stylesheet" href="/static/css/style.css" rel="external nofollow" >
</head>
<body>
<h1>歡迎來到 Go 靜態(tài)資源服務示例</h1>
<!-- 引入圖片 -->
<img src="/static/images/logo.png" alt="Logo" width="150">
<!-- 引入 JS -->
<script src="/static/js/app.js"></script>
</body>
</html>
五、靜態(tài)資源示例
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 腳本。
靜態(tài)資源也可以直接訪問:
http://localhost:8080/static/images/logo.png http://localhost:8080/static/css/style.css
七、總結
- Gin 提供
Static()方法一行就能完成靜態(tài)文件托管。 - 靜態(tài)文件路徑映射和 URL 前綴可以靈活配置。
- 結合 HTML 模板,可以很方便地構建完整的前端頁面服務。
到此這篇關于使用Go語言快速構建靜態(tài)資源服務的文章就介紹到這了,更多相關Go靜態(tài)資源服務內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Golang安裝和使用protocol-buffer流程介紹
這篇文章主要介紹了Golang安裝和使用protocol-buffer過程,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-09-09
Go部署多環(huán)境開發(fā)的項目實戰(zhàn)
在 Go 項目的開發(fā)過程中,能夠在不同的環(huán)境(如開發(fā)、測試、生產)中進行靈活部署是至關重要的,不同環(huán)境通常需要不同的配置,下面就來詳細的介紹一下Go部署多環(huán)境2026-02-02
go?time.Sleep睡眠指定時間實例詳解(小時級到納秒級)
golang的休眠可以使用time包中的sleep,下面這篇文章主要給大家介紹了關于go?time.Sleep睡眠指定時間(小時級到納秒級)的相關資料,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下2022-11-11

