开始调整目录,写第二小结
This commit is contained in:
46
14.1.md
46
14.1.md
@@ -2,6 +2,25 @@
|
|||||||
我们在前面已经讲过如何处理静态文件,这小节我们详细的介绍如何在beego里面设置和使用静态文件。通过再介绍一个twitter开源的html、css框架bootstrap,无需任何的设计人员就能够让你快速的建立一个漂亮的站点。
|
我们在前面已经讲过如何处理静态文件,这小节我们详细的介绍如何在beego里面设置和使用静态文件。通过再介绍一个twitter开源的html、css框架bootstrap,无需任何的设计人员就能够让你快速的建立一个漂亮的站点。
|
||||||
|
|
||||||
## beego静态文件实现和设置
|
## beego静态文件实现和设置
|
||||||
|
Go的net/http包中提供了静态文件的服务,`ServeFile`和`FileServer`等函数。beego的静态文件处理就是基于这一层处理的,具体的实现如下所示:
|
||||||
|
|
||||||
|
//static file server
|
||||||
|
for prefix, staticDir := range StaticDir {
|
||||||
|
if strings.HasPrefix(r.URL.Path, prefix) {
|
||||||
|
file := staticDir + r.URL.Path[len(prefix):]
|
||||||
|
http.ServeFile(w, r, file)
|
||||||
|
w.started = true
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
StaticDir里面保存的是相应的url对应到静态文件所在的目录,因此在处理URL请求的时候只需要判断对应的请求地址是否包含静态处理开头的url,如果是那么就采用http.ServeFile提供服务。
|
||||||
|
|
||||||
|
举例如下:
|
||||||
|
|
||||||
|
beego.StaticDir["/asset"] = "/static"
|
||||||
|
|
||||||
|
那么请求url如`http://www.beego.me/asset/bootstrap.css`的请求就会请求`/static/bootstrap.css`来提供反馈给客户端。
|
||||||
|
|
||||||
## bootstrap集成
|
## bootstrap集成
|
||||||
Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。Bootstrap是快速开发Web应用程序的前端工具包。它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格,网格系统等等。
|
Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。Bootstrap是快速开发Web应用程序的前端工具包。它是一个CSS和HTML的集合,它使用了最新的浏览器技术,给你的Web开发提供了时尚的版式,表单,buttons,表格,网格系统等等。
|
||||||
@@ -17,7 +36,32 @@ Bootstrap是Twitter推出的一个开源的用于前端开发的工具包。Boot
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
接下来我们利用bootstrap集成到beego框架里面来,快速的建立一个漂亮的站点
|
接下来我们利用bootstrap集成到beego框架里面来,快速的建立一个漂亮的站点。
|
||||||
|
|
||||||
|
1. 首先把下载的bootstrap目录放到我们的项目目录,取名为static,如下截图所示
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
2. 因为beego默认设置了StaticDir的值,所以如果你的静态文件目录是static的话就无须再增加了:
|
||||||
|
|
||||||
|
StaticDir["/static"] = "static"
|
||||||
|
|
||||||
|
3. 模板中使用如下的地址就可以了:
|
||||||
|
|
||||||
|
//css文件
|
||||||
|
<link href="/static/css/bootstrap.css" rel="stylesheet">
|
||||||
|
|
||||||
|
//js文件
|
||||||
|
<script src="/static/js/bootstrap-transition.js"></script>
|
||||||
|
|
||||||
|
//图片文件
|
||||||
|
<img src="/static/img/logo.png">
|
||||||
|
|
||||||
|
上面可以实现把bootstrap集成到beego中来,如下展示的图就是集成进来之后的展现效果图:
|
||||||
|
|
||||||
|

|
||||||
|
|
||||||
|
这些模板和格式bootstrap官方都有提供,这边就不在重复贴代码,大家可以上bootstrap官方网站学习如何编写这样的模板。
|
||||||
|
|
||||||
|
|
||||||
## links
|
## links
|
||||||
|
|||||||
65
14.2.md
65
14.2.md
@@ -0,0 +1,65 @@
|
|||||||
|
# 14.2 Session支持
|
||||||
|
第六章的时候我们介绍过如何在Go语言中使用session,也实现了一个sessionManger,beego基于sessionManager实现了框架方便的处理session功能。
|
||||||
|
|
||||||
|
## session集成
|
||||||
|
beego中主要有如下这些全局变量来控制session处理:
|
||||||
|
|
||||||
|
//related to session
|
||||||
|
SessionOn bool // 是否开启session模块,默认不开启
|
||||||
|
SessionProvider string // session后端提供处理模块,默认是sessionManager支持的memory
|
||||||
|
SessionName string // 客户端保存的cookies的名称
|
||||||
|
SessionGCMaxLifetime int64 // cookies有效期
|
||||||
|
|
||||||
|
GlobalSessions *session.Manager //全局session控制器
|
||||||
|
|
||||||
|
当然上面这些变量需要初始化值以及如何配合配置文件设置来设置这些值:
|
||||||
|
|
||||||
|
if ar, err := AppConfig.Bool("sessionon"); err != nil {
|
||||||
|
SessionOn = false
|
||||||
|
} else {
|
||||||
|
SessionOn = ar
|
||||||
|
}
|
||||||
|
if ar := AppConfig.String("sessionprovider"); ar == "" {
|
||||||
|
SessionProvider = "memory"
|
||||||
|
} else {
|
||||||
|
SessionProvider = ar
|
||||||
|
}
|
||||||
|
if ar := AppConfig.String("sessionname"); ar == "" {
|
||||||
|
SessionName = "beegosessionID"
|
||||||
|
} else {
|
||||||
|
SessionName = ar
|
||||||
|
}
|
||||||
|
if ar, err := AppConfig.Int("sessiongcmaxlifetime"); err != nil && ar != 0 {
|
||||||
|
int64val, _ := strconv.ParseInt(strconv.Itoa(ar), 10, 64)
|
||||||
|
SessionGCMaxLifetime = int64val
|
||||||
|
} else {
|
||||||
|
SessionGCMaxLifetime = 3600
|
||||||
|
}
|
||||||
|
|
||||||
|
在beego.Run函数中增加如下代码:
|
||||||
|
|
||||||
|
if SessionOn {
|
||||||
|
GlobalSessions, _ = session.NewManager(SessionProvider, SessionName, SessionGCMaxLifetime)
|
||||||
|
go GlobalSessions.GC()
|
||||||
|
}
|
||||||
|
|
||||||
|
这样如果只要SessionOn设置为true,那么就会默认开启session功能。独立开一个goroutine来处理session。
|
||||||
|
|
||||||
|
为了方便我们在我们的Controller中方便的使用session,我们在`beego.Controller`中提供了如下方法:
|
||||||
|
|
||||||
|
func (c *Controller) StartSession() (sess session.Session) {
|
||||||
|
sess = GlobalSessions.SessionStart(c.Ctx.ResponseWriter, c.Ctx.Request)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
## session使用
|
||||||
|
通过上面的代码我们可以看到,beego框架很方便的就继承了session功能,那么我们在项目中如何使用呢?请看的示例代码:
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## links
|
||||||
|
* [目录](<preface.md>)
|
||||||
|
* 上一节: [静态文件支持](<14.1.md>)
|
||||||
|
* 下一节: [表单及验证支持](<14.3.md>)
|
||||||
6
14.3.md
6
14.3.md
@@ -0,0 +1,6 @@
|
|||||||
|
# 14.3 表单及验证支持
|
||||||
|
|
||||||
|
## links
|
||||||
|
* [目录](<preface.md>)
|
||||||
|
* 上一节: [Session支持](<14.2.md>)
|
||||||
|
* 下一节: [用户认证](<14.4.md>)
|
||||||
6
14.4.md
6
14.4.md
@@ -0,0 +1,6 @@
|
|||||||
|
# 14.4 用户认证
|
||||||
|
|
||||||
|
## links
|
||||||
|
* [目录](<preface.md>)
|
||||||
|
* 上一节: [表单及验证支持](<14.3.md>)
|
||||||
|
* 下一节: [多语言支持](<14.5.md>)
|
||||||
6
14.5.md
6
14.5.md
@@ -0,0 +1,6 @@
|
|||||||
|
# 14.5 多语言支持
|
||||||
|
|
||||||
|
## links
|
||||||
|
* [目录](<preface.md>)
|
||||||
|
* 上一节: [用户认证](<14.4.md>)
|
||||||
|
* 下一节: [pprof支持](<14.6.md>)
|
||||||
6
14.6.md
6
14.6.md
@@ -0,0 +1,6 @@
|
|||||||
|
# 14.6 pprof支持
|
||||||
|
|
||||||
|
## links
|
||||||
|
* [目录](<preface.md>)
|
||||||
|
* 上一节: [多语言支持](<14.5.md>)
|
||||||
|
* 下一节: [小结](<14.7.md>)
|
||||||
5
14.7.md
Normal file
5
14.7.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# 14.7 小结
|
||||||
|
|
||||||
|
## links
|
||||||
|
* [目录](<preface.md>)
|
||||||
|
* 上一节: [pprof支持](<14.6.md>)
|
||||||
3
14.md
3
14.md
@@ -9,7 +9,8 @@
|
|||||||
* 3 [表单及验证支持](14.3.md)
|
* 3 [表单及验证支持](14.3.md)
|
||||||
* 4 [用户认证](14.4.md)
|
* 4 [用户认证](14.4.md)
|
||||||
* 5 [多语言支持](14.5.md)
|
* 5 [多语言支持](14.5.md)
|
||||||
* 6 [小结](14.6.md)
|
* 6 [pprof支持](14.6.md)
|
||||||
|
* 7 [小结](14.7.md)
|
||||||
|
|
||||||
## links
|
## links
|
||||||
* [目录](<preface.md>)
|
* [目录](<preface.md>)
|
||||||
|
|||||||
BIN
images/14.1.bootstrap2.png
Normal file
BIN
images/14.1.bootstrap2.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.4 KiB |
BIN
images/14.1.bootstrap3.png
Normal file
BIN
images/14.1.bootstrap3.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 22 KiB |
@@ -89,4 +89,5 @@
|
|||||||
- 14.3 [表单支持](14.3.md)
|
- 14.3 [表单支持](14.3.md)
|
||||||
- 14.4 [用户认证](14.4.md)
|
- 14.4 [用户认证](14.4.md)
|
||||||
- 14.5 [多语言支持](14.5.md)
|
- 14.5 [多语言支持](14.5.md)
|
||||||
- 14.6 [小结](14.6.md)
|
- 14.6 [pprof支持](14.6.md)
|
||||||
|
- 14.7 [小结](14.7.md)
|
||||||
Reference in New Issue
Block a user