hola, soy nuevo en ginebra. Quiero publicar un archivo html, este archivo (upload.html) importa algunos archivos js. Pero no funciona. si elimina estos archivos js, funciona bien. ¿Alguien puede ayudarme?
¡Disculpe mi pobre inglés!
func main(){
router := gin.Default()
router.LoadHTMLGlob("templates/*")
// router.LoadHTMLFiles("templates/upload.html")
router.GET("/index",func(c *gin.Context){
c.HTML(http.StatusOK, "upload.html", gin.H{
"title": "Main website",
})
} )
router.POST("/upload",uploadHandler)
router.Run(":8080")
}
Por lo general, no "renderiza" archivos JS como plantillas, en su lugar, usa algo como el middleware estático y coloca todos tus archivos .js en una carpeta generalmente llamada "pública" en Go, o algunas veces simplemente "estática".
Eche un vistazo a https://github.com/gin-gonic/contrib/tree/master/static
@robvdl gracias
@kekemuyu acabo de arreglar tu ejemplo:
package main
import "gopkg.in/gin-gonic/gin.v1"
func main(){
router := gin.Default()
router.Static("/assets", "./assets")
router.LoadHTMLGlob("templates/*")
//router.LoadHTMLFiles("templates/upload.html")
router.GET("/index",func(c *gin.Context){
c.HTML(http.StatusOK, "upload.html", gin.H{
"title": "Main website",
})
} )
router.POST("/upload",uploadHandler)
router.Run(":8080")
}
Y finalmente arregle su src
en su HTML, apuntando ahora todo a /assets/*
.
Clausura.
Ah, sí, lo recuerdo ahora, el middleware estático solo es necesario si desea servir archivos estáticos desde / en lugar de alguna suburl como / static (como cuando se trata de servir SPA), esto tiene que ver con el diseño del enrutador de Gin basado en httprouter .
De lo contrario, router.Static () es suficiente :)
Comentario más útil
@robvdl gracias
@kekemuyu acabo de arreglar tu ejemplo:
Y finalmente arregle su
src
en su HTML, apuntando ahora todo a/assets/*
.Clausura.