我使用 go 的net/http库来提供一个网络应用程序。当用户访问该站点时,他们只需转到 /,它就会提供 index.html(就像任何站点一样)。
这是使用以下方法实现的:
r.PathPrefix("/").Handler(http.FileServer(http.Dir("./")))
但是,有两种方法可以构建这样的应用程序。首先,您可以将所有文件打包在同一目录中。这在我看来是一个不稳定的解决方案(如果我直接运行 go 文件它会失败)。
src/bin/app.go
src/bin/index.html
或者,更“传统”的样式,其中 index.html 是顶级的。
src/bin/app.go
index.html
index.html 或 go web 应用程序中其他静态资源的正确位置在哪里?
一旦我们将 go 文件打包成二进制文件,如何确定 ./ 的位置?
go 二进制文件是否可以保留非 go 资源的目录结构,以便在开发环境和生产环境之间保持一致?
更新(下面的答案是正确的,我实现了下面 Not_a_golfer 的建议,我的目录树看起来像这样,通过服务器中的 conf 或动态逻辑在任何环境中都可以轻松维护)。
├── src
│ └── main
│ └── app.go
└── static
├── index.html
├── script.js
└── style.css
手掌心
相关分类