0

好的,首先让我先说我知道使用 go 我真的应该使用 net/http 框架,除非我有编写自己的知识或者我明确地尝试过但它没有用。然而,我是个白痴,我认为我可以通过使用框架来节省一些时间和头痛,我认为选择一个只有一个人维护的框架是个好主意。框架在这里: https ://github.com/kataras/iris 但我不希望您通读所有内容。然而,它是基于 fasthttp 的,你们中的一些人可能已经体验过(希望如此)。

我在这个框架中遇到的问题是静态内容服务的配置。例如,我有我的索引页面被提供:

iris.Get("/", serveHome)

在 ip:port 上提供和 html 模板。

我列出了这样的静态资源:

iris.Static("/css", "./client/css")

它基本上在 ip:port/css 上为 dir css 提供服务

但是,当我将这一切都放在服务器上并使用 nginx (使用 ssl&tls 证书)将 mydomain.example 和 www.mydomain.example 重定向到 ip:port 时,这行得通:

iris.Get("/", serveHome)

并在 mydomain.example 提供 index.html。这没有:

iris.Static("/css", "./client/css")

现在我的网站无法访问任何静态资源,因为它试图访问 mydomain.example/css,由于某种原因,它没有指向 ip:port/css。

任何线索为什么会发生这种情况,您之前是否在任何其他 http 服务器上看到过这种行为,如果是的话,您是否有任何指示可以帮助我弄清楚这件事?我很茫然,任何建议,即使只是推测,也会很有用。

4

1 回答 1

0

我知道你已经在移植这个,但如果我不得不猜测,我会说问题是你使用的相对路径./client/css

如果你正在编译它并在你的开发环境中运行它,这几乎会在下面运行$GOPATH/bin,我猜你的 CSS 文件在$GOPATH/src/path/to/project/client/css......然后当编译的服务器试图./client/css$GOPATH/bin......找到时,我猜你明白了, 它在$GOPATH/bin/client/css. 但这只是一个猜测,我需要您项目中的更多信息来调试它。

祝您移植项目好运!

于 2016-11-25T15:54:22.030 回答