google-app-engine - GAE go 只提供本地主机上的路径而不是域

标签 google-app-engine go

我正在使用 appengine sdk 在本地为 google app engine 开发一个小的 go 应用程序。

我有一个问题,只有当我尝试使用本地主机而不是域名来访问它时,才能提供不同于根目录的路径。

我的设置如下。

  • home.mydomain.com 指向我家的ip地址
  • 我的家庭路由器将端口 80 上的传入 tcp 和 udp 转发到端口 8080 上的笔记本电脑
  • 我的笔记本电脑运行的是 Windows 10
  • 我的go版本是go1.6 windows/amd64

我的 app.yaml:

application: tasks
version: 1
runtime: go
api_version: go1

handlers:
- url:  /.*
  script: _go_app

最小示例代码:

func init() {
    fileHandler := http.FileServer(http.Dir("../frontend"))

    http.HandleFunc("/loggedout", testHandler)
    http.Handle("/", fileHandler)

    log.Print(http.ListenAndServe(":8080", nil))
}

func testHandler(res http.ResponseWriter, req *http.Request){    
    panic("JUST NEED THIS TO WORK")
}

我的症状是,如果我访问 localhost:8080/,我会得到我的网站,如果我访问 localhost:8080/loggedout,我会得到预期的 panic 。
如果我访问 home.mydomain.com/我得到我的网站,但是如果我访问 home.mydomain.com/loggedout 连接就挂起,在 chrome 网络选项卡中它被列为无限期挂起。

最佳答案

正如 Greg 所指出的,当我使用 goapp 时,我不需要同时调用 ListenAndServe。 为了让 goapp 监听本地主机之外的请求,我还必须在命令中添加 --host "my laptops ip"。

关于google-app-engine - GAE go 只提供本地主机上的路径而不是域,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38403341/

相关文章:

google-app-engine - 如何模拟 "serverless"Cloud SQL?

java - GAE :Process terminated because the backend took too long to shut down in backends job

python - 尝试从 python 脚本执行 golang 程序时出错

html - Golang 在 html 模板中打印数组值

pointers - 为什么从非指针值调用的闭包不能正确添加到 slice 中?

web-services - 使用 gin-gonic 编写 Web 服务的最佳实践是什么

java - 应用引擎 : call endpoints of another module on the same server

python - 使用 Drive API 编辑 Google 文档

google-app-engine - 如何在开发服务器上使用 Oauth 测试 Cloud Endpoints

带有共享库的 C# 字符串