在我的html中,我尝试使用
包含JS<script src="/js/app.js"></script>
我也尝试了相对路径(来自服务器位置)
<script src="js/app.js"></script>
和来自html文件的亲戚
我的文件结构
-js
app.js
-templates
index.html
hub.go
main.go
main.go是服务器
func main() {
http.HandleFunc("/", rootHandler)
http.ListenAndServe(":8080", nil)
}
func rootHandler(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, "Templates/index.html")
}
我是否遗漏了某些东西,我必须通过服务器服务器css / js?或者应该简单的HTML工作
答案 0 :(得分:5)
要通过http提供文件,请为目录定义FileServer,并使用"/assets/"
将其路由到http.Handle
。
以下设置应该适合您:
目录结构:
├── assets/
│ ├── js
│ └── css
├── templates/
└── main.go
main.go
func main() {
http.HandleFunc("/", rootHandler)
http.Handle("/assets/", http.StripPrefix("/assets/", http.FileServer(http.Dir("assets"))))
http.ListenAndServe(":8080", nil)
}
func rootHandler(w http.ResponseWriter, r *http.Request) {
http.ServeFile(w, r, "templates/index.html")
}
模板文件中的:
<script src="/assets/js/app.js"></script>