Golang es una alternativa muy buena a la hora de desarrollar APIs y aplicaciones web. Pocos lenguajes son mas rápidos y tiene una gestión de la memoria sencilla. Además, ahora con las arquitecturas de microservicios y los contenedores se hace necesario usar herramientas especificas para funciones concretas y como comentava, Go es muy rápido.
En pasados posts ya expliqué(incluso hice un vídeo) donde explicaba como hacer una aplicación web en Go, ahora vamos a ver como servir contenido estático(Imágenes, CSS, Javascript, etc.). El siguiente código sirve contenido estático de la carpeta ‘../static’ en la URL ‘static/'(también tiene en cuenta subcarpetas):
package main import ( "net/http" "html/template" ) func main() { /* Aquí configuramos(2 líneas) el contenido a servir */ fs := http.FileServer(http.Dir("../static/")) http.Handle("/static/", http.StripPrefix("/static/", fs)) http.HandleFunc("/", home) http.ListenAndServe(":8080", nil) } func home(w http.ResponseWriter, r *http.Request) { tmpl := template.Must(template.ParseFiles("theme/index.html")) data := struct { Saludo string } { "Hola mundo” } tmpl.Execute( w, data ) }
Fijaros que solo usamos dos líneas y el resto del código ya lo tenemos chupado de otros posts.