Gin: ¿Por qué gin no puede procesar archivos js?

Creado en 10 nov. 2016  ·  3Comentarios  ·  Fuente: gin-gonic/gin

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")                       
}

Comentario más útil

@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.

Todos 3 comentarios

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 :)

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

oryband picture oryband  ·  3Comentarios

Bloomca picture Bloomca  ·  3Comentarios

nxvl picture nxvl  ·  3Comentarios

mastrolinux picture mastrolinux  ·  3Comentarios

ghost picture ghost  ·  3Comentarios