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

bma*_*ion 15 web-applications go server

我在这里遵循了GoLang教程,但无论出于何种原因,我都无法让应用程序服务于css和js.如果我在没有go服务器的情况下运行我的静态页面,页面css工作正常.另一方面,当我运行go服务器时,css不起作用.

这是我的html类似:

<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">
Run Code Online (Sandbox Code Playgroud)

我的文件树看起来像这样

在此输入图像描述

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

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

<script src="../assets/js/jquery.min.js"></script>
<script src="../assets/js/bootstrap.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

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

go-affect/
??? data
?   ??? …
??? static
?   ??? css
?   ?   ??? …
?   ??? js
?   ?   ??? …
??? tmpl
?   ??? edit.html
?   ??? index.html
?   ??? view.html
??? main.go
Run Code Online (Sandbox Code Playgroud)

Ray*_*ear 19

http.Handle("/", http.FileServer(http.Dir("css/")))
Run Code Online (Sandbox Code Playgroud)

将服务于您的css目录/.当然,您可以选择任何路径中的任何目录.

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

http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.Dir("static"))))
Run Code Online (Sandbox Code Playgroud)

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

domain.com/static/css/filename.css方法删除前缀,因此它不会尝试搜索例如,在domain.com/static/js/filename.js对目录StripPrefix其中,当然,也不会发现.它会staticstatic/css/filename.css目录中查找,这是正确的.