|
@@ -69,6 +69,7 @@ func (hs *HTTPServer) Run(ctx context.Context) error {
|
|
|
var err error
|
|
var err error
|
|
|
|
|
|
|
|
hs.context = ctx
|
|
hs.context = ctx
|
|
|
|
|
+
|
|
|
hs.applyRoutes()
|
|
hs.applyRoutes()
|
|
|
hs.streamManager.Run(ctx)
|
|
hs.streamManager.Run(ctx)
|
|
|
|
|
|
|
@@ -169,6 +170,26 @@ func (hs *HTTPServer) newMacaron() *macaron.Macaron {
|
|
|
macaron.Env = setting.Env
|
|
macaron.Env = setting.Env
|
|
|
m := macaron.New()
|
|
m := macaron.New()
|
|
|
|
|
|
|
|
|
|
+ // automatically set HEAD for every GET
|
|
|
|
|
+ m.SetAutoHead(true)
|
|
|
|
|
+
|
|
|
|
|
+ return m
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (hs *HTTPServer) applyRoutes() {
|
|
|
|
|
+ // start with middlewares & static routes
|
|
|
|
|
+ hs.addMiddlewaresAndStaticRoutes()
|
|
|
|
|
+ // then add view routes & api routes
|
|
|
|
|
+ hs.RouteRegister.Register(hs.macaron)
|
|
|
|
|
+ // then custom app proxy routes
|
|
|
|
|
+ hs.initAppPluginRoutes(hs.macaron)
|
|
|
|
|
+ // lastly not found route
|
|
|
|
|
+ hs.macaron.NotFound(NotFoundHandler)
|
|
|
|
|
+}
|
|
|
|
|
+
|
|
|
|
|
+func (hs *HTTPServer) addMiddlewaresAndStaticRoutes() {
|
|
|
|
|
+ m := hs.macaron
|
|
|
|
|
+
|
|
|
m.Use(middleware.Logger())
|
|
m.Use(middleware.Logger())
|
|
|
|
|
|
|
|
if setting.EnableGzip {
|
|
if setting.EnableGzip {
|
|
@@ -180,7 +201,7 @@ func (hs *HTTPServer) newMacaron() *macaron.Macaron {
|
|
|
for _, route := range plugins.StaticRoutes {
|
|
for _, route := range plugins.StaticRoutes {
|
|
|
pluginRoute := path.Join("/public/plugins/", route.PluginId)
|
|
pluginRoute := path.Join("/public/plugins/", route.PluginId)
|
|
|
hs.log.Debug("Plugins: Adding route", "route", pluginRoute, "dir", route.Directory)
|
|
hs.log.Debug("Plugins: Adding route", "route", pluginRoute, "dir", route.Directory)
|
|
|
- hs.mapStatic(m, route.Directory, "", pluginRoute)
|
|
|
|
|
|
|
+ hs.mapStatic(hs.macaron, route.Directory, "", pluginRoute)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
hs.mapStatic(m, setting.StaticRootPath, "build", "public/build")
|
|
hs.mapStatic(m, setting.StaticRootPath, "build", "public/build")
|
|
@@ -209,8 +230,6 @@ func (hs *HTTPServer) newMacaron() *macaron.Macaron {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
m.Use(middleware.AddDefaultResponseHeaders())
|
|
m.Use(middleware.AddDefaultResponseHeaders())
|
|
|
-
|
|
|
|
|
- return m
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
func (hs *HTTPServer) metricsEndpoint(ctx *macaron.Context) {
|
|
func (hs *HTTPServer) metricsEndpoint(ctx *macaron.Context) {
|