Warning: Undefined array key "typ" in /srv/vhost/diaridigital.net/home/html/sourcecode/main/articles.php on line 18
Proyectos web estáticos
Tiempo de lectura: 1 minutos
Cómo definir un proyecto web estático servido con Go sobre la estructura estándar de directorios.
Proyecto web
En un proyecto que tenga páginas html estáticas con estilos y utilice JavaScript, utilizaremos una estructura de directorio acorde. Por otro lado, veremos cómo servir las páginas de recursos como los CSS y los scripts de JS.
Estructura de directorio
Definiremos esta estructura de directorios donde desarrollamos el directorio web dentro de la estructura general de directorios:
├── web/
│ ├── static/
│ │ ├── css/
│ │ ├── js/
│ │ └── ...
│ └── templates/
│ ├── index.html
│ └── ... Ficheros estáticos
Creamos los siguientes ficheros para ver el ejemplo completo. Un fichero HTML y uno CSS.
<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>A static page</title>
<link rel="stylesheet" href="/stylesheets/main.css">
</head>
<body>
<h1>Hello from a static page</h1>
</body>
</html> body {
background-color: #ffcccc;
color: #c0392b;
} Servir los ficheros de recursos
Utilizamos la función http.FileServer() para crear un controlador que responde a todas las solicitudes HTTP con el contenido de un sistema de archivos determinado, en nuestro caso static. A continuación, utilizamos la función http.Handle() para registrar el servidor de archivos como el controlador de todas las solicitudes. El código en Go para servir los ficheros será el siguiente.
package main
import (
"log"
"net/http"
)
func main() {
fs := http.FileServer(http.Dir("./static"))
http.Handle("/", fs)
log.Print("Servidor escuchando en 8081...")
err := http.ListenAndServe(":8081", nil)
if err != nil {
log.Fatal(err)
}
} Ejecutamos
http://localhost:8081/templates/main.html
