亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-28 20:49:34 來源:腳本之家 閱讀:377 作者:jingxian 欄目:編程語言

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就會沒有影響了

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

洪洞县| 武夷山市| 汤原县| 榆中县| 呼和浩特市| 正阳县| 晋中市| 庆云县| 探索| 临湘市| 柞水县| 平谷区| 舞钢市| 揭阳市| 拉孜县| 安康市| 班玛县| 元阳县| 综艺| 石嘴山市| 阿拉尔市| 体育| 阿合奇县| 桃江县| 浦江县| 阿拉善左旗| 肇源县| 商都县| 岑巩县| 吉水县| 彰化市| 千阳县| 南京市| 小金县| 佳木斯市| 元谋县| 微山县| 迁安市| 揭东县| 高清| 博野县|