Я хочу создать приложение, которое будет вызывать булеву функцию и в зависимости от результата предоставлять 1 из 2 скомпилированных реагирующих приложений в качестве статических сайтов.
Я использую функцию LoadHTMLGlob, рекомендованную джином, и она работаетхорошо с .tmpl файлами, как пример в их документах.Однако при выполнении только статического html со статическим каталогом для каждого сайта ничего не получается.
Структура файла:
├── main.go
└── sites
├── new
│ ├── index.html
│ └── static
└── old
├── index.html
└── static
Go Code:
func main() {
r := gin.Default()
//r.LoadHTMLFiles("sites/old/index.html", "sites/new/index.html") //doesn't complain, but can't load html
r.LoadHTMLGlob("sites/**/*") // complains about /static being a dir on boot
r.GET("/sites/lib", func(c *gin.Context) {
id := c.Query("id")
useNewSite, err := isBetaUser(id)
if err != nil {
c.AbortWithStatusJSON(500, err.Error())
return
}
if useNewSite {
c.HTML(http.StatusOK, "new/index.html", nil)
} else {
c.HTML(http.StatusOK, "old/index.html", nil)
}
})
routerErr := r.Run(":8080")
if routerErr != nil {
panic(routerErr.Error())
}
}
Iожидайте, что когда isBetaUser вернётся как истина, он должен загрузить статический контент под сайтами / новый, в противном случае загрузить сайты / старый.
Однако загрузка глобусов приводит к: panic: read sites/new/static: is a directory
при запуске паники.
ЗагрузкаHTML-файлы по отдельности (закомментировано выше). Работает нормально, но когда приходит запрос, он паникует с помощью:
html/template: "new/index.html" is undefined
У меня также есть строка с использованием sites / [old || new] /index.html в c.HTML