当前位置: 首页 > news >正文

gin入门教程(8):渲染与静态文件

目录结构

/hello-gin
│
├── cmd/
│   └── main.go
├── pkg/
│   └── shared_lib.go
├── internal/
│   └── internal_lib.go
├── api/
│   └── routes.go
├── config/
│   └── config.go
├── migrations/
│   └── migration.sql
└── scripts/└── build.sh
├── templates/
│   └── index.html
└── static/└── style.css

1. cmd/main.go

这个文件是程序的入口点,设置 Gin 服务器,加载路由和模板。

package mainimport ("hello-gin/api""github.com/gin-gonic/gin""net/http"
)func main() {r := gin.Default()// 设置静态文件路径r.Static("/static", "./static")// 加载模板r.LoadHTMLGlob("templates/*")// 注册路由api.RegisterRoutes(r)// 启动服务器r.Run(":8080")
}

2. api/routes.go

这个文件定义 API 路由和处理逻辑。

package apiimport ("github.com/gin-gonic/gin""net/http"
)func RegisterRoutes(r *gin.Engine) {r.GET("/", func(c *gin.Context) {c.HTML(http.StatusOK, "index.html", nil)})
}

3. templates/index.html

保持原样,添加简单的 HTML 模板。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="/static/style.css"><title>Welcome</title>
</head>
<body><h1>Hello, Gin!</h1>
</body>
</html>

4. static/style.css

同样保持原样,添加一些基本样式。

body {font-family: Arial, sans-serif;background-color: #f0f0f0;text-align: center;margin-top: 50px;
}

5. 其他文件

  • pkg/shared_lib.gointernal/internal_lib.go:可以包含你的共享库代码和内部库代码。
  • config/config.go:可用于管理配置文件和环境变量。
  • migrations/migration.sql:可以用于数据库迁移。
  • scripts/build.sh:可以编写构建脚本或其他工具脚本。

运行应用

在项目根目录下运行:

go run cmd/main.go

访问 http://localhost:8080,你应该能看到渲染的 HTML 页面,样式文件也会被正确加载。

总结

以上是根据你的目录架构组织的 Gin 应用示例,展示了如何在项目中处理渲染与静态文件。这样结构清晰,更易于管理和扩展。

http://www.lryc.cn/news/467382.html

相关文章:

  • Fast Simulation of Mass-Spring Systems in Rust 论文阅读
  • javaWeb项目-ssm+vue志愿者招募网站功能说明介绍
  • Selenium + Titanium代理获取请求的接口数据
  • ELK Stack与Graylog:强大的日志分析和可视化工具
  • 安全见闻(6)——开阔眼界,不做井底之蛙
  • GRU神经网络理解
  • Windows 10、Office 2016/2019 和 PPTP 和 L2TP协议即将退役,企业应尽早做好准备
  • 论文阅读:Guided Linear Upsampling
  • 深度图和RGB图对齐
  • 滑动窗口与TCP的缓冲区(buff)的关系
  • 一款好用的搜索软件——everthing(搜索比文件资源管理器快)
  • C#WPF的App.xaml启动第一个窗体的3种方式
  • 【JAVA毕设】基于JAVA的酒店管理系统
  • 聚类--机器学习西瓜书阅读笔记(六)
  • OpenHarmony(1)开发环境搭建
  • Triton服务在ASR语音识别系统中的实现
  • Typora一款极简Markdown文档编辑、阅读器,实时预览,所见即所得,多主题,免费生成序列号!
  • python机器人编程——用python调用API控制wifi小车的实例程序
  • 面试学习整理-线程池
  • Debian会取代CentOS成为更主流的操作系统吗?
  • 网络安全领域推荐证书介绍及备考指南
  • SpringBoot项目ES6.8升级ES7.4.0
  • 深度学习 之 模型部署 使用Flask和PyTorch构建图像分类Web服务
  • MFC工控项目实例二十六创建数据库
  • springmvc源码流程解析(一)
  • 【论文阅读】SRGAN
  • kubelet PLEG实现
  • leetcode49:字母异位词分组
  • 一个将.Geojson文件转成shapefile和kml文件的在线页面工具(续)
  • 论文阅读(二十四):SA-Net: Shuffle Attention for Deep Convolutional Neural Networks