main.go 752 B

123456789101112131415161718192021222324252627282930
  1. package router
  2. import (
  3. "embed"
  4. "fmt"
  5. "github.com/gin-gonic/gin"
  6. "net/http"
  7. "one-api/common"
  8. "os"
  9. "strings"
  10. )
  11. func SetRouter(router *gin.Engine, buildFS embed.FS, indexPage []byte) {
  12. SetApiRouter(router)
  13. SetDashboardRouter(router)
  14. SetRelayRouter(router)
  15. frontendBaseUrl := os.Getenv("FRONTEND_BASE_URL")
  16. if common.IsMasterNode && frontendBaseUrl != "" {
  17. frontendBaseUrl = ""
  18. common.SysLog("FRONTEND_BASE_URL is ignored on master node")
  19. }
  20. if frontendBaseUrl == "" {
  21. SetWebRouter(router, buildFS, indexPage)
  22. } else {
  23. frontendBaseUrl = strings.TrimSuffix(frontendBaseUrl, "/")
  24. router.NoRoute(func(c *gin.Context) {
  25. c.Redirect(http.StatusMovedPermanently, fmt.Sprintf("%s%s", frontendBaseUrl, c.Request.RequestURI))
  26. })
  27. }
  28. }