GoWebの静的ファイル

などの静的な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)
}
公開された116元の記事 ウォン称賛27 ビュー10000 +

おすすめ

転載: blog.csdn.net/wuxingge/article/details/105306743