国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Golang > 正文

完美解決beego 根目錄不能訪問靜態文件的問題

2020-04-01 19:05:15
字體:
來源:轉載
供稿:網友

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.xmlorpath := this.Ctx.Request.URL.Pathif strings.Index(orpath, "crossdomain.xml") >= 0 {fmt.Println(orpath) // /crossdomain.xmlpath := 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就會沒有影響了

以上這篇完美解決beego 根目錄不能訪問靜態文件的問題就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持VEVB武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 万宁市| 武功县| 廉江市| 叶城县| 辉县市| 荆门市| 秦安县| 忻城县| 大理市| 景德镇市| 扎囊县| 松江区| 东平县| 富蕴县| 黄山市| 甘泉县| 体育| 大庆市| 高陵县| 淄博市| 江孜县| 宣恩县| 射洪县| 兖州市| 苍南县| 宣汉县| 寿光市| 华坪县| 桑日县| 贺兰县| 科尔| 砀山县| 苏州市| 盐边县| 隆子县| 清新县| 高台县| 方城县| 新乡县| 淳化县| 隆化县|