archivos estáticos Goweb

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

Aquí Insertar imagen Descripción

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)
}
Publicados 116 artículos originales · ganado elogios 27 · Vistas a 10000 +

Supongo que te gusta

Origin blog.csdn.net/wuxingge/article/details/105306743
Recomendado
Clasificación