Skip to content

Static Route throwing error #4324

@RealMarvn

Description

@RealMarvn

Hey I am having trouble to implement a full frontend in my backend.
I have a directory called public where a index.html is placed.
Now I want the api routes to be listening on /api/ subgroup and everything else should redirect to index.html since my react frontend does manage the routing on its own.
I am always getting an error when trying to start that configuration. This is my code:

func main() {
	r := gin.Default()

	// API-Routes
	api := r.Group("/api")
	routes.RegisterRoutes(api)

	// Static routes
	r.Static("/", "./public")

	// Fallback for SPA
	r.NoRoute(func(c *gin.Context) {
		c.File("./public/index.html")
	})
	
	if err := r.Run(":8080"); err != nil {
		println("Error starting server:", err)
	}
}

[GIN-debug] [WARNING] Running in "debug" mode. Switch to "release" mode in production.

  • using env: export GIN_MODE=release
  • using code: gin.SetMode(gin.ReleaseMode)

[GIN-debug] GET /api/ping --> github.com/marvn/hms/backend/handlers.Ping (3 handlers)
[GIN-debug] GET /*filepath --> github.com/gin-gonic/gin.(*RouterGroup).createStaticHandler.func1 (3 handlers)
panic: catch-all wildcard '*filepath' in new path '/*filepath' conflicts with existing path segment 'api' in existing prefix '/api'

Can I somehow fix this?
BTW is there a discord or anything where I can ask those questions instead of opening an issue on Github?
THx for your help!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions