Por CSS página HTML estática y archivos js, etc., es necesario utilizar el / http paquete de red con las siguientes funciones
función StripPrefix
func StripPrefix(prefix string, h Handler) Handler
StripPrefix devuelve un procesador, campo URL.Path del procesador solicitud dada prefijo prefijo proceso de eliminación en adelante h. StripPrefix no responderá a la solicitud de una página determinada prefijo 404 no se encuentra a campo URL.Path
función servidorArchivos
func FileServer(root FileSystem) Handler
ServidorArchivos devuelve una interfaz de usar sistema de ficheros raíz para proporcionar servicios de acceso de archivos HTTP Handler. Para utilizar el sistema de interfaz de sistema de archivos operativo, puede utilizar http.Dir:
http.Handle("/", http.FileServer(http.Dir("/tmp")))
- el tipo de sistema de archivos
type FileSystem interface {
Open(name string) (File, error)
}
Sistema de archivos de acceso de interfaz a una lista de archivos con el nombre. separador de ruta del archivo es '/', independientemente de las convenciones del sistema operativo anfitrión
- escriba Dir
type Dir string
Dir limita a un árbol de directorio especificado utilizando el sistema de archivos local para lograr http.FileSystem interfaz. Dir vaciar ser considerado "", que representa el directorio actual
- func (Dir) Abrir
func (d Dir) Open(name string) (File, error)
Ejemplos
Los archivos estáticos estructura de directorios del proyecto
plantilla de estilo CSS archivo index.html Dirección introdujo
<link type="text/css" rel="stylesheet" href="static/css/style.css" >
La manipulación de archivos estáticos
http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("views/static/"))))
Descripción:
/ estática / coincidirá con / estática ruta / principio, cuando las peticiones del navegador style.css página archivo index.html, prefijo estática será reemplazada con la vista / estática, a continuación, vaya al directorio views / estática / css encontrar el archivo style.css
package main
import (
"html/template"
"net/http"
)
// IndexHandler 去首页
func IndexHandler(w http.ResponseWriter, r *http.Request) {
//解析模板
t := template.Must(template.ParseFiles("views/index.html"))
//执行
t.Execute(w, "")
}
func main() {
//设置处理静态资源
http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("views/static/"))))
http.Handle("/pages/", http.StripPrefix("/pages/", http.FileServer(http.Dir("views/pages/"))))
http.HandleFunc("/", IndexHandler)
http.ListenAndServe(":8080", nil)
}