路由器未找到控制器Beego

I had a beego application that was working, and then my router stopped finding the controller, and I have no idea why. No matter what url I type, the router does not direct to the controller complaining nomatch

2016/07/26 17:24:50 [router.go:829][D] | GET | / | 478.352µs | notmatch |

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 (controller)

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

I believe this is following the specifications of http://beego.me/docs/mvc/controller/router.md so I would like to understand why it does not find the controller.

You are not importing routers package. If you don't import routers in anywhere, the init function will never be executed. You can test it adding a simple fmt.Println('I'm initialized') in routers.init function.

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

Ok, you must add a new import with _ to say that you won't use, but, the init function will be executed! Then you must write this in main package:

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

        _ "example/routers"
)

I hope that it is useful! :-)