什么是靜態文件?如何處理靜態文件?靜態文件的作用
類型於單獨的css js 圖片這些被html文件所需要,而又不會有太大隱私的文件。靜態文件用來修飾html等模板。如何只暴露所需要的靜態文件?請看下面詳解:
先看一下例子:
package main
import (
"net/http"
)
func main(){
http.Handle("/",http.FileServer(http.Dir("/")))
http.ListenAndServe(":80",nil)
}
訪問結果:

訪問了整個磁盤上的文件,
修改一下,接着看:
package main
import (
"net/http"
)
func main(){
http.Handle("/",http.FileServer(http.Dir("./"))) //當前根目錄
http.ListenAndServe(":80",nil)
}
訪問結果:

當前目錄下的所有文件。
上面的情況,放開的權限特別大,這肯定是不行的,主要是不安全的。
看下面的完整的例子:
package main
import (
"net/http"
"text/template"
"fmt"
)
var t1 *template.Template
func init(){
t,err := template.ParseFiles("./views/index.html")
if err != nil {
fmt.Println("paser file err",err)
return
}
t1 = t
}
func index(w http.ResponseWriter, r *http.Request){
t1.Execute(w,nil)
}
func main(){
http.HandleFunc("/index",index)
http.Handle("/media/",http.StripPrefix("/media/",http.FileServer(http.Dir("./media"))))
// http.Handle("/media/",http.FileServer(http.Dir("./media")))
http.ListenAndServe(":80",nil)
}

當前目錄 static, views下是所有的html模板,media下是所有css,js,圖片。
訪問url:

查看頁面所需要css的url:

靜態文件其實指的是像css,js,img等一些被模板需要的文件,當它們訪問的url不能獲取時,那么模板就不能達到預想的效果。所以我們只暴露了所需要的靜態文件的目錄
查看:

