2016-07-27 76 views
0

我有一個beego應用程序正在工作,然後我的路由器停止找到控制器,我不知道爲什麼。無論我輸入什麼網址,路由器都不會直接向控制器抱怨,不匹配路由器沒有找到控制器Beego

2016/07/26 17:24:50 [router.go:829] [D] | GET |/| 478.352μs|不匹配|

app.conf

appname = exampleapp 
httpport = 8080 
runmode = dev 

router.go

package routers 

import (
    "github.com/astaxie/beego" 
    "example/controllers" 

func init() { 
    beego.Router("/", &controllers.MainController{}) 
} 

德fault.go(控制器)

package controllers 

import (
     "github.com/astaxie/beego" 
) 

type MainController struct { 
     beego.Controller 
} 

func (c *MainController) Get() { 
     c.Data["Website"] = "http://localhost:8080" 
     c.TplName = "index.tpl" 
} 

main.go

package main 

import (
     "fmt" 
     "github.com/astaxie/beego" 
) 

func main() { 
     fmt.Pritnln("Starting Beego App") 
     beego.Run() 
     fmt.Println("Finished Running Beego App") 
} 

我相信這是繼http://beego.me/docs/mvc/controller/router.md的規格,所以我想知道爲什麼它沒有找到控制器。

回答

2

您並未導入routers包。如果您不在任何地方導入routers,則init函數將永遠不會執行。您可以在routers.init函數中添加一個簡單的fmt.Println('I'm initialized')進行測試。

func init() { 
    fmt.Println('I'm initialized') 
    beego.Router("/", &controllers.MainController{}) 
} 

好吧,你必須添加一個新的導入與_地說,你不會用,但是,在init功能將被執行!那麼你必須寫在主包:

import (
     "fmt" 
     "github.com/astaxie/beego" 

     _ "example/routers" 
) 

我希望它是有用的! :-)

+0

就是這樣。非常有幫助,並在我的結尾一個愚蠢的小姐。我結束了在所有錯誤的地方尋找! – and0rsk