欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

完美解決beego 根目錄不能訪問靜態(tài)文件的問題

 更新時間:2017年06月17日 09:17:10   投稿:jingxian  
下面小編就為大家?guī)硪黄昝澜鉀Qbeego 根目錄不能訪問靜態(tài)文件的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

beego可算是Go框架里面文檔最多的了。學(xué)起來比較容易。但是框架自身的局限性卻帶了不小的問題。

最近我在處理flash跨域問題上就遇到個活生生的例子:

flash里面的as3訪問外網(wǎng)時沒啥問題??墒羌偃缤ㄟ^網(wǎng)頁調(diào)取的情況下,flash訪問的外網(wǎng)又與所在網(wǎng)頁不是一個域的。就會產(chǎn)生跨域問題。打開瀏覽器,f12之后,看到的就是flash沒有訪問你的url,而是訪問了這個url所在的域名根目錄下的配置文件crossdomain.xml。該配置文件來設(shè)置跨域訪問的權(quán)限。

這時候需要在你的域名根目錄下放個crossdomain.xml文件。恰巧我用的是beego,不支持這功能!~

解決辦法:

既然不支持那就把beego寫成一個文件服務(wù)器的功能即可。把我的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()
}

當(dāng)然了這不是什么好辦法。只是拋磚引玉而已。所有的請求都要判斷一下,如果想完善一下,在路由配置時可以精確匹配url處理的controller就好了,而對于自己的controller就會沒有影響了

以上這篇完美解決beego 根目錄不能訪問靜態(tài)文件的問題就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • golang實現(xiàn)并發(fā)控制的方法和技巧

    golang實現(xiàn)并發(fā)控制的方法和技巧

    golang 是一門支持并發(fā)的編程語言,它提供了 goroutine 和 channel 等強大的特性,讓我們可以輕松地創(chuàng)建和管理多個執(zhí)行單元,實現(xiàn)高效的任務(wù)處理,在本文中,我們將介紹一些 golang 的并發(fā)控制的方法和技巧,希望對你有所幫助
    2024-03-03
  • golang函數(shù)的返回值實現(xiàn)

    golang函數(shù)的返回值實現(xiàn)

    本文主要介紹了golang函數(shù)的返回值實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-03-03
  • golang的tunny的用法示例教程

    golang的tunny的用法示例教程

    這篇文章主要為大家介紹了golang的tunny的用法示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-07-07
  • Golang中的四個括號示例詳解

    Golang中的四個括號示例詳解

    這篇文章主要介紹了Golang中的四個括號,本文通過實例代碼給大家介紹的非常詳細,通過實例代碼補充介紹了有效的括號golang實現(xiàn),需要的朋友可以參考下
    2024-03-03
  • golang?channel多協(xié)程通信常用方法底層原理全面解析

    golang?channel多協(xié)程通信常用方法底層原理全面解析

    channel?是?goroutine?與?goroutine?之間通信的重要橋梁,借助?channel,我們能很輕易的寫出一個多協(xié)程通信程序,今天,我們就來看看這個?channel?的常用用法以及底層原理
    2023-09-09
  • 在Linux系統(tǒng)中安裝Go語言的詳細教程

    在Linux系統(tǒng)中安裝Go語言的詳細教程

    這篇文章主要介紹了在Linux系統(tǒng)中安裝Go語言的詳細教程,由于國內(nèi)很多人對谷歌的盲目追捧,導(dǎo)致Go語言在國內(nèi)的人氣遠超國外...需要的朋友可以參考下
    2015-06-06
  • 淺析Go語言中的超時控制

    淺析Go語言中的超時控制

    日常開發(fā)中我們大概率會遇到超時控制的場景,而一個良好的超時控制可以有效的避免一些問題,所以本文就來和大家深入探討一下Go語言中的超時控制吧
    2023-10-10
  • Go語言學(xué)習(xí)之映射(map)的用法詳解

    Go語言學(xué)習(xí)之映射(map)的用法詳解

    Map是一種無序的鍵值對的集合。這篇文章主要為大家詳細介紹了Go語言中映射的用法,文中的示例代碼講解詳細,對我們學(xué)習(xí)Go語言有一定的幫助,需要的可以參考一下
    2022-04-04
  • Golang使用Redis與連接池方式

    Golang使用Redis與連接池方式

    這篇文章主要介紹了Golang使用Redis與連接池方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-06-06
  • Go 字符串比較的實現(xiàn)示例

    Go 字符串比較的實現(xiàn)示例

    本文主要介紹了Go 字符串比較的實現(xiàn)示例,主要包括三種比較方式,具有一定的參考價值,感興趣的可以了解一下
    2022-01-01

最新評論