Categories: GoFrame 教程

GoFrame 资源管理-使用示例

我们来看一个使用示例,在该示例中,展示了资源管理在​WebServer​的静态服务、配置管理、模板引擎中的使用。

资源文件

资源文件源码:https://github.com/gogf/gf/v2/tree/master/os/gres/testdata/example/files

资源文件打包:https://github.com/gogf/gf/v2/tree/master/os/gres/testdata/example/boot

资源文件列表:

2020-03-28T13:04:10+00:00   0.00B config
2020-03-28T13:03:06+00:00 135.00B config/config.toml
2020-03-28T13:04:10+00:00   0.00B public
2020-03-28T12:57:54+00:00   6.00B public/index.html
2020-03-28T13:04:10+00:00   0.00B template
2020-03-28T13:03:17+00:00  15.00B template/index.tpl
TOTAL FILES: 6

三个文件的内容分别为:

  • config.toml

该文件为应用的配置文件。

 [server]
     Address    = ":8888"
     ServerRoot = "public"

 [viewer]
     DefaultFile = "index.tpl"
     Delimiters  = ["${", "}"]
  • index.html

该文件用于静态资源请求。

 Hello!
  • index.tpl

该文件用于模板文件解析展示。

 Hello ${.name}!

创建应用

package main

import (
 _ "github.com/gogf/gf/v2/os/gres/testdata/example/boot"

 "github.com/gogf/gf/v2/frame/g"
 "github.com/gogf/gf/v2/net/ghttp"
)

func main() {
 s := g.Server()
 s.Group("/", func(group *ghttp.RouterGroup) {
  group.GET("/template", func(r *ghttp.Request) {
   r.Response.WriteTplDefault(g.Map{
    "name": "GoFrame",
   })
  })
 })
 s.Run()
}

可以看到,整个代码中除了​import​中额外增加了一个 ​_ "github.com/gogf/gf/v2/os/gres/testdata/example/boot"​ 的包引入外,没有其他任何设置。这也是​GoFrame​框架的资源管理比较便捷的地方,资源管理并不需要开发阶段对代码做任何特殊设置,在应用程序部署之前打包好资源文件,并通过​import​增加资源文件的引入即可。

运行后,终端输出:

2020-03-28 21:36:19.828 75892: http server started listening on [:8888]

  SERVER  | DOMAIN  | ADDRESS | METHOD |   ROUTE   |      HANDLER      | MIDDLEWARE
|---------|---------|---------|--------|-----------|-------------------|------------|
  default | default | :8888   | GET    | /template | main.main.func1.1 |
|---------|---------|---------|--------|-----------|-------------------|------------|

可以看到,配置文件被自动读取并应用到了​WebServer​上。

我们通过​curl​命令测试一下静态文件以及模板引擎的访问。

$ curl http://127.0.0.1:8888/
Hello!

$ curl http://127.0.0.1:8888/template
Hello GoFrame!

可以看到,​index.html​静态文件以及​index.tpl​模板文件都被成功访问到了。

admin

这个人很懒,什么都没有留下~

Share
Published by
admin

Recent Posts

聊聊vue3中的defineProps

在Vue 3中,defineP…

1 周 ago

在 Chrome 中删除、允许和管理 Cookie

您可以选择删除现有 Cooki…

2 周 ago

自定义指令:聊聊vue中的自定义指令应用法则

今天我们来聊聊vue中的自定义…

3 周 ago

聊聊Vue中@click.stop和@click.prevent

一起来学下聊聊Vue中@cli…

4 周 ago

Nginx 基本操作:启动、停止、重启命令。

我们来学习Nginx基础操作:…

1 月 ago

Vue3:手动清理keep-alive组件缓存的方法

Vue3中手动清理keep-a…

1 月 ago