我如何在Go Lang中提供CSS和JS

前端之家收集整理的这篇文章主要介绍了我如何在Go Lang中提供CSS和JS前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我遵循GoLang教程 here,但无论出于何种原因,我都无法让应用程序服务于css和js.如果我在没有go服务器的情况下运行静态页面,页面css工作正常.另一方面,当我运行go服务器时,css不起作用.

这是我的html类似:

@H_502_4@<link rel="stylesheet" href="../assets/css/bootstrap.min.css"> <link rel="stylesheet" href="../assets/css/bootstrap-theme.min.css"> <link rel="stylesheet" href="../assets/css/custom.css"> . . . then under the body tag <script src="../assets/js/jquery.min.js"></script> <script src="../assets/js/bootstrap.min.js"></script> . . .

我的文件树看起来像这样

如何让我的go应用程序提供我需要的css和javascript?

问题已经解决了,这里是工作主要的:

@H_502_4@func main() { http.HandleFunc("/view/",makeHandler(viewHandler)) http.HandleFunc("/edit/",makeHandler(editHandler)) http.HandleFunc("/save/",makeHandler(saveHandler)) http.HandleFunc("/index/",makeHandler(indexHandler)) http.Handle("/static/",http.StripPrefix("/static/",http.FileServer(http.Dir("static")))) http.ListenAndServe(":8080",nil) }

这是我正在使用的处理程序的示例

@H_502_4@func indexHandler(w http.ResponseWriter,r *http.Request,title string) { p := &Page{Title: title} err := templates.ExecuteTemplate(w,"index.html",p) if err != nil { http.Error(w,err.Error(),http.StatusInternalServerError) } }

解决方法

您可以像这样提供静态文件的目录: @H_502_4@http.Handle("/",http.FileServer(http.Dir("css/")))

将在/提供您的css目录.当然,您可以选择任何路径中的任何目录.

我可能会确保静态路径不会妨碍其他路径并使用类似的东西.

@H_502_4@http.Handle("/static/",http.FileServer(http.Dir("static"))))

将js和css放在项目中的static目录中.然后,它将在domain.com/static/css/filename.css和domain.com/static/js/filename.js上提供服务.

StripPrefix方法删除前缀,因此它不会尝试搜索例如在static / css / filename.css的静态目录中,当然,它不会找到.它会在静态目录中查找css / filename.css,这是正确的.

猜你在找的CSS相关文章