使用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
三、代碼實現
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中http請求的context傳遞到異步任務的坑及解決
這篇文章主要介紹了golang中http請求的context傳遞到異步任務的坑及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-03-03基于golang channel實現的輕量級異步任務分發(fā)器示例代碼
這篇文章主要給大家介紹了關于基于golang channel實現的輕量級異步任務分發(fā)器的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-07-07