解决beego根目录不能访问静态文件的问题
发布:smiling 来源: PHP粉丝网 添加日期:2018-06-04 11:02:45 浏览: 评论:0
beego可算是Go框架里面文档最多的了。学起来比较容易。但是框架自身的局限性却带了不小的问题。
最近我在处理flash跨域问题上就遇到个活生生的例子:
flash里面的as3访问外网时没啥问题。可是假如通过网页调取的情况下,flash访问的外网又与所在网页不是一个域的。就会产生跨域问题。打开浏览器,f12之后,看到的就是flash没有访问你的url,而是访问了这个url所在的域名根目录下的配置文件crossdomain.xml。该配置文件来设置跨域访问的权限。
这时候需要在你的域名根目录下放个crossdomain.xml文件。恰巧我用的是beego,不支持这功能!~
解决办法:
既然不支持那就把beego写成一个文件服务器的功能即可。把我的crossdomain.xml同样放到static下,在收到这个请求时,直接将这个文件写回到response即可。上代码:
- package main
- import (
- "fmt"
- http "net/http"
- "path/filepath"
- "strings"
- "github.com/astaxie/beego"
- )
- type MainController struct {
- beego.Controller
- }
- func (this *MainController) Get() {
- //this.Ctx.Request.URL= http://127.0.0.1/crossdomain.xml
- orpath := this.Ctx.Request.URL.Path
- if strings.Index(orpath, "crossdomain.xml") >= 0 {
- fmt.Println(orpath) // /crossdomain.xml
- path := filepath.Join(`static`, "crossdomain.xml")
- http.ServeFile(this.Ctx.ResponseWriter, this.Ctx.Request, path)
- }
- this.Ctx.WriteString("hello world" + orpath)
- }
- func (this *MainController) Post() {
- name := this.GetString("name")
- sex := this.GetString("sex")
- this.Ctx.WriteString(name + sex+"成功")
- fmt.Println(name + sex)
- }
- func main() {
- beego.Router("/*", &MainController{})
- beego.Run()
- }
当然了这不是什么好办法。只是抛砖引玉而已。所有的请求都要判断一下,如果想完善一下,在路由配置时可以精确匹配url处理的controller就好了,而对于自己的controller就会没有影响了。
Tags: 根目录 静态 文件
相关文章
- ·php 获取网站根目录的写法(2014-06-13)
- ·php获得网站根目录的几个方法(2015-04-08)
- ·php获取网站根目录物理路径的几种方法(推荐)(2018-08-06)
- ·php技术生成静态页面的实现(2013-11-13)
- ·关于PHP生成静态页面详细讲解(2013-11-28)
- ·PHP生成静态页面的两种方法(2013-12-10)
- ·PHP实现URL静态化(2013-12-19)
- ·html静态页面怎么调用php文件(2014-01-16)
- ·PHP类中的静态方法使用实例(2014-02-18)
- ·php生成html静态页面完整实例(2014-07-07)
- ·PHP生成HTML纯静态网页程序代码(2014-07-28)
- ·php 全局变量与静态变量分析详解(2014-08-04)
- ·php 简单定时生成静态页面实现方法(2014-08-15)
- ·php 利用数据库信息生成静态页面实例代码(2014-08-17)
- ·php统计静态html页面浏览访问次数代码(2014-08-17)
- ·php设置静态内容缓存时间(2014-09-22)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)