などの静的なHTMLページのCSSやJSファイルについては、以下の機能を持つネット/ HTTPパッケージの契約を使用する必要
StripPrefix機能
func StripPrefix(prefix string, h Handler) Handler
StripPrefixプロセッサを返し、プロセッサのURL.Pathフィールドが呼ば時間後に与えられたプレフィックスプレフィックス除去処理を要求します。StripPrefixはURL.Pathフィールドに見つからないプレフィックス404ページの要求に応答しません
ファイルサーバ機能
func FileServer(root FileSystem) Handler
ファイルサーバは、HTTPハンドラ、ファイルアクセスサービスを提供するために、ファイルシステムのルートを使用するためのインターフェースを返します。オペレーティングシステムのファイルシステム・インタフェースを使用するには、http.Dirを使用することができます。
http.Handle("/", http.FileServer(http.Dir("/tmp")))
- タイプファイルシステム
type FileSystem interface {
Open(name string) (File, error)
}
指定されたファイルのリストにアクセスするインタフェースファイルシステム。ファイルパスセパレータは関係なく、ホスト・オペレーティング・システムの規則の、「/」であります
- タイプのDir
type Dir string
監督はhttp.FileSystemインタフェースを実現するために、ローカル・ファイル・システムを使用して、指定されたディレクトリツリーに制限されています。ディレクトリを空と見なされる「」、カレントディレクトリを表します
- FUNC(DIR)オープン
func (d Dir) Open(name string) (File, error)
例
静的は、プロジェクトのディレクトリ構造をファイル
導入されたCSSスタイルテンプレートのindex.htmlファイル住所
<link type="text/css" rel="stylesheet" href="static/css/style.css" >
静的ファイルの取り扱い
http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("views/static/"))))
説明:
/静的/ビュー/静的/ CSSのディレクトリに移動し、その後、へ/静的なパスが/、時にブラウザ要求のstyle.cssファイルindex.htmlページから始まる、静的プレフィックスは、ビュー/静的に置き換えられます一致します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)
}