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

gin使用embed打包html

embed

使用类似的注释打包html文件

//go:embed pages/dist/*

打包的代码如下

package mainimport ("embed""io/fs""net/http""github.com/gin-gonic/gin"
)//go:embed pages/dist/*
var embedFs embed.FSfunc main() {e := gin.Default()fpages, _ := fs.Sub(embedFs, "pages")fdist, _ := fs.Sub(fpages, "dist")fjs, _ := fs.Sub(fdist, "js")fcss, _ := fs.Sub(fdist, "css")e.StaticFS("/js", http.FS(fjs))e.StaticFS("/css", http.FS(fcss))e.GET("/", func(c *gin.Context) {c.FileFromFS("/", http.FS(fdist))})e.Run()
}

浏览器在请求服务端页面时,根据url匹配文件

io.fs.open(“/”)

返回"/“路径下所有的文件,不会递归遍历,所有c.FileFromFS(”/", http.FS(fdist))返回更目录中的所有文件


下面代码中的js和css文件在单独的目录里面,使用"/"无法访问

<!doctype html>
<html lang=""><head><meta charset="utf-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width,initial-scale=1"><link rel="icon" href="/favicon.ico"><title>pages</title><script defer="defer" src="/js/chunk-vendors.87e17c26.js"></script><script defer="defer" src="/js/app.cf230781.js"></script><link href="/css/app.2cf79ad6.css" rel="stylesheet">
</head><body><noscript><strong>We're sorry but pages doesn't work properly without JavaScript enabled. Please enable it tocontinue.</strong></noscript><div id="app"></div>
</body></html>

添加静态文件服务器

e.StaticFS(“/js”, http.FS(fjs))
e.StaticFS(“/css”, http.FS(fcss))

或者修改html相对路径,保证文件能在"/"路径中所有搜索到或者在静态文件服务器中找到。

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

相关文章:

  • Android启动优化实践
  • ROS:通信机制实操
  • C/C++内存管理(内存分布、动态内存分配、动态内存分配与释放、内存泄漏等)
  • 【云原生】软件架构的演进以及各个架构的优缺点
  • 力扣刷题笔记——二叉树
  • 【华为OD机试】工号不够用了怎么办?(python, java, c++, js)
  • 【leetcode】198. 打家劫舍
  • 【react全家桶学习】react的 (新/旧) 生命周期(重点)
  • Gradio私网和公网的使用
  • ant design vue 配置菜单外部打开
  • YOLOv5/v7 添加注意力机制,30多种模块分析⑦,CCN模块,GAMAttention模块
  • IDEA下Logback.xml自动提示功能配置
  • CUDA编程模型系列八(原子操作 / 规约 / 向量元素求和)
  • go语言系列基础教程总结(4)
  • 网络基础一:网络协议初识与网络传输基本流程
  • Mysql找出执行慢的SQL【慢查询日志使用与分析】
  • 设计模式3:单例模式:JMM与volatile和synchronized的关系
  • 一个简单的OPC UA/ModbusTCP 网关(Python)
  • 线性代数行列式的几何含义
  • python用flask将视频显示在网页上
  • 【数据挖掘】时间序列教程【一】
  • 优化索引粒度参数提升ClickHouse查询性能
  • selenium\webdriver\remote\errorhandler.py:242: SessionNotCreatedException问题解决
  • MySQL 备份与恢复
  • js中改变this指向的三种方式
  • 小程序中如何进行数据传递和通信
  • Vue3项目中引入ElementUI使用详解
  • 计算机启动
  • Unity学习笔记--EventSystem事件系统在使用上需要注意的地方(很基础,但是很多人会忘记!!!)
  • 高手必备:JVM调优的常用命令和参数一网打尽!