Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /srv/vhost/diaridigital.net/home/html/sourcecode/includes/config.php on line 61

Deprecated: substr(): Passing null to parameter #1 ($string) of type string is deprecated in /srv/vhost/diaridigital.net/home/html/sourcecode/includes/config.php on line 61
Proyectos web estáticos
Source Code

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

html
Pàgina servida 
http://localhost:8081/templates/main.html
Xavier es un desarrollador senior full stack y opera desde la ciudad mediterránea de Barcelona. Le encantan las tecnologías de software y está convencido que el desarrollo de software es un proceso colaborativo y abierto.
Y es un apasionado de la astronomía y de la fotografía. Lo puedes encontrar en:
Comparte este post