Versions Compared
compared with
Key
- This line was added.
- This line was removed.
- Formatting was changed.
我们来看一个使用示例,在该示例中,展示了资源管理在WebServer
的静态服务、配置管理、模板引擎中的使用。
资源文件
资源文件源码:https://github.com/gogf/gf/tree/master/os/gres/testdata/example/files
资源文件打包:https://github.com/gogf/gf/tree/master/os/gres/testdata/example/boot
资源文件列表:
Code Block | ||
---|---|---|
| ||
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}!
该文件用于模板文件解析展示。
创建应用
Code Block | ||
---|---|---|
| ||
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
增加资源文件的引入即可。
运行后,终端输出:
Code Block | ||
---|---|---|
| ||
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
命令测试一下静态文件以及模板引擎的访问。
Code Block | ||
---|---|---|
| ||
$ curl http://127.0.0.1:8888/ Hello! $ curl http://127.0.0.1:8888/template Hello GoFrame! |
可以看到,index.html
静态文件以及index.tpl
模板文件都被成功访问到了。
Panel | ||
---|---|---|
| ||
|