当前位置: 首页 > 面试题库 >

Go Web应用程序的目录结构

陶超
2023-03-14
问题内容

我已遵循Go网站上的“
编写Web应用程序”教程,并且开始编写自己的Web应用程序。我还阅读了《如何编写Go代码》的开始,并尝试使用相同的工作区结构来组织我的代码。

我正在编写一个名为mygosite的简单Web应用程序,该应用程序通过呈现单个模板来处理所有请求。运行之后go install github.com/wesleym/mygosite,我的目录结构现在看起来像这样:

go
+-src
| +-github.com
|   +-wesleym
|     +-mygosite
|       +-mygosite.go
|       +-templates
|         +- index.html
|       +-.git
+-bin
  +-mygosite

在我的代码中,我指的是带有path的模板templates/index.html。运行时bin/mygosite,应用程序找不到源模板,因为它位于源代码树中。由于模板对我的应用程序很重要,因此我不想将其移出mygosite
git存储库。

考虑到我要执行的操作,目录布局是否合理?我应该在代码中将模板的路径更改为src/github.com/wesleym/mygosite/templates/index.html吗?诸如CSS和JavaScript之类的静态资产又如何?当需要引入静态资产时,这些资产应该去哪儿呢?

tl; dr:我应该在Go Web应用程序项目中的哪里放置模板和静态文件?


问题答案:

我在Go Web应用程序项目中的哪里放置模板和静态文件?

是“错误”的问题。如果您询问“我的可执行文件将如何找到其资源?”
您几乎可以找到解决方案:可执行文件应该从(或几个)可配置的位置读取其资源(提供合理的默认值总是很不错的)。当前工作目录中的命令行标志,环境变量和配置文件对于此类任务很常见。(当然,如果您只有少量的小资源:按照VonC的建议将它们打包到可执行文件中;一旦开始包含图像或视频之类的大资产,此方案就会崩溃。)



 类似资料:
  • 小程序包含一个描述整体程序的 app 和多个描述各自页面的 page。 一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下: 文件 必需 作用 app.js 是 小程序逻辑 app.json 是 小程序公共配置 app.ftss 否 小程序公共样式表 一个小程序页面由四个文件组成,分别是: 文件类型 必需 作用 js 是 页面逻辑 fxml 是 页面结构 json 否 页面配置 ftss

  • 程序目录结构 SpeedPHP框架的目录结构比较简单,秉承了SpeedPHP快速学习的理念。 新版的sp框架,由于加入了mudules开发模式,所以在目录结构方面,趋于更精炼,更固定化。 3.1版及之前的sp框架,目录结构是可以通过配置进行修改。 但是新版的情况不一样了。 之所以我们要用固定的目录结构,理由如下: 加入mudules开发模式,使得多个应用可以集成到一个程序里面,也就是传统的模块开发

  • 我开始学习JSP和Tomcat容器,并且知道目录必须如何存储,但有几件事让我感到困惑: 如果我们只使用web app,为什么我们需要这里的其余文件夹?(突出显示为蓝色)。我可以只是删除他们和加载我的项目“web”作为根?

  • 我想知道将应用程序分成多个独立部分的最佳方式(如果可能的话)是什么。例如,如果你有三个独立的单元来做不同的事情,你可能有两个不同的应用程序,它们结合了这三分之二的部分,你会怎么做? 我来自windows后台,在Visual Studio中,您可以在一个解决方案下拥有多个独立的项目,然后您可以在需要的地方重用它们。 你能在Android系统中使用这个吗?我知道我可以把东西放在不同的包中,但不确定如何

  • goweb 是 Go 语言实现的一个轻量级的 RESTful 服务框架。

  • 所以我刚刚让jpackage使用一个基本的测试程序。我遇到了一个问题,这个问题从本质上决定了这个系统是否可以应用于实际项目。 要进行设置,Java程序的结构如下: 程序从此根目录运行。运行时程序所需的文件位于res文件夹中。因此,程序将执行类似以下操作:File f=new File(“res/File\u i\u need.png”) 。 我将其导出为一个罐子,现在我用jpackage将其打包。