Роутер не находит контроллер Beego

У меня было приложение beego, которое работало, а потом мой роутер перестал находить контроллер, и я понятия не имею, почему. Независимо от того, какой URL я набираю, маршрутизатор не обращается к контроллеру, жалующемуся на несоответствие.

2016/07/26 17:24:50 [router.go:829][D] | ПОЛУЧИТЬ | / | 478,352 мкс | несоответствие |

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{})
}

default.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 вот и хотелось бы понять, почему он не находит контроллер.


person andor kesselman    schedule 27.07.2016    source источник


Ответы (1)


Вы не импортируете routers пакет. Если вы никуда не импортируете routers, функция init никогда не будет выполнена. Вы можете проверить это, добавив простую функцию fmt.Println('I'm initialized') в routers.init.

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

Хорошо, вы должны добавить новый импорт с _, чтобы сказать, что вы не будете использовать, но функция init будет выполнена! Затем вы должны написать это в основном пакете:

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

        _ "example/routers"
)

Я надеюсь, что это полезно! :-)

person Toni Villena    schedule 27.07.2016
comment
Вот оно. Очень полезная и глупая мисс с моей стороны. Я закончил тем, что искал во всех неправильных местах! - person andor kesselman; 28.07.2016