创世魂 发表于 2025-12-22 15:00:44

【解决方案】火山服务器Gin框架加载匹配子文件夹的html

火山服务器Gin框架加载匹配子文件夹的html




<火山程序 类型 = "通常" 版本 = 1 />

类 启动类 <公开 基础类 = 程序类 @服务器.附属文件 = "..\\templates > templates" @服务器.附属文件 = "..\\static > static">
{
    变量 HTTP服务 <类型 = HTTP服务器类>
    变量 可关闭 <类型 = 可关闭服务器类>

    方法 启动方法 <公开 类型 = 整数>
    {
      变量 引擎 <参考 类型 = Gin引擎类>
      HTTP服务.地址 = ":8080"// 监听端口
      引擎 = Gin引擎类.取默认引擎 ()// 取出默认引擎
      引擎.加载匹配HTML文件 ("templates/**/*")
      引擎.注册静态文件 ("/static", "./static")
      引擎.注册GET2 ("/")
      {
            Gin引擎类.取上下文 ().写出模板 (200, "home.html", Gin哈希表.创建Gin哈希表 ("title", "主页").添加 ("message", "欢迎来到Gin示例网站!"))
      }
      引擎.注册GET2 ("/about")
      {
            Gin引擎类.取上下文 ().写出模板 (200, "about.html", Gin哈希表.创建Gin哈希表 ("title", "关于我们").添加 ("message", "这是关于我们的页面。"))
      }
      引擎.注册GET2 ("/contact")
      {
            Gin引擎类.取上下文 ().写出模板 (200, "contact.html", Gin哈希表.创建Gin哈希表 ("title", "联系我们").添加 ("message", "这是联系我们页面。"))
      }
      HTTP服务.置处理程序 (引擎.HTTP处理程序接口)
      启动协程 ()
      {
            换行输出 ("打开浏览器访问 http://localhost:8080")
            HTTP服务.监听并服务 ()
      }
      可关闭.等待关闭 ()// 阻止服务器自动关闭
      返回 (1)
    }

    方法 可关闭服务器类_被关闭 <接收事件 类型 = 整数 注释 = "检测到收到中断信号(Ctrl+C)后,将触发本事件,在本事件下处理服务器被关闭时所需的操作.">
    参数 来源对象 <类型 = 可关闭服务器类 注释 = "提供事件产生的具体来源对象">
    参数 标记值 <类型 = 整数 注释 = "用户调用\"挂接事件\"命令时所提供的\"标记值\"参数值,非此方式挂接事件则本参数值固定为0.">
    {
      如果 (来源对象 == 可关闭)
      {
            HTTP服务.正常关闭 (协程环境.创建主环境 ())
      }
      返回 (0)
    }
}



**** Hidden Message *****


yb1984724 发表于 2025-12-22 15:20:32

:):):)多谢分享!~~

alanwoo 发表于 2025-12-22 16:05:21

多谢分享

nurjay 发表于 2025-12-22 16:14:22

本帖最后由 nurjay 于 2025-12-22 19:34 编辑

版主写的代码得好好学习<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>{{.title}} - Gin示例网站</title>
    <link rel="stylesheet" href="/static/css/style.css">
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>


火山代码运行后为什么这个《head》里面的{{.title}}没有被渲染出来,而是在<main>里面的{{.title}}可以渲染出来

糯米 发表于 2025-12-22 20:06:21

不错。学习了。

传说星星 发表于 2025-12-22 21:39:30

问题是他这样不匹配主文件夹的html了,我就是想了解他如何能同时匹配主文件夹的html文件和子文件夹的html文件

传说星星 发表于 2025-12-22 21:46:12

传说星星 发表于 2025-12-22 21:39
问题是他这样不匹配主文件夹的html了,我就是想了解他如何能同时匹配主文件夹的html文件和子文件夹的html文 ...

比如我想同时匹配主文件夹内的html和子文件夹的html我使用gin.加载匹配HTML文件 (".\\templates\\*.html")可以匹配主文件夹 但是不能匹配子文件夹 如果我使用gin.加载匹配HTML文件 (".\\templates\\**\\*.html")又只能匹配子文件夹 不能匹配主文件夹 如果我同时
gin.加载匹配HTML文件 (".\\templates\\*.html")   
gin.加载匹配HTML文件 (".\\templates\\**\\*.html")
第二次加载匹配的会把第一次的给覆盖掉,,就我目前我自己试过唯一一种能同时匹配主文件夹的html和子文件夹的gtml就是自己写代码,把文件夹中所有的.html文件遍历出来再用匹配html文件,我感觉是不是有点麻烦,不好意思老师,我是纯新手,还在学习

lichenxui 发表于 2025-12-23 08:39:01

6666666666
页: [1]
查看完整版本: 【解决方案】火山服务器Gin框架加载匹配子文件夹的html