gpt4 book ai didi

google-app-engine - Google App Engine Golang 返回 404 页面未找到

转载 作者:IT王子 更新时间:2023-10-29 02:32:02 24 4
gpt4 key购买 nike

app.yaml

runtime: go
api_version: go1

handlers:
- url: /.*
script: _go_app

我的 main.go 文件:

主要包

import (
"fmt"
"github.com/cbll/stockmarket-service/lib"
"net/http"
"log"
"google.golang.org/appengine"
)

func main() {
appengine.Main()
fmt.Println("Starting the application...")
// Run application until halted
for {
go lib.GetStockData()
StockController()
}
}


// Expose controller at http://localhost:8080/
func StockController() {
var port = ":8080"

fmt.Println("Starting web server listening on port", port)

http.HandleFunc("/", lib.StocksHandler)
log.Fatal(http.ListenAndServe(port, nil))
}

如果我注释掉 appengine.Main(),我可以在本地运行它而不会出现任何问题。它从端口 8080 开始。

gcloud app deploy 可以正常工作,并将应用程序正确部署到谷歌云。

但是,将我带到网站的 gcloud app browse 返回 404 page not found。事实上,使用 gcloud app logs read 检查日志:

2018-01-06 00:04:18 default[20180106t010155]  + exec app
2018-01-06 00:08:32 default[20180106t010155] "GET /" 404

我有点不确定在此处进行故障排除。它在本地工作,它指定 :8080 作为它应该的端口(据我所知?),并导入 appengine main 方法。我可能缺少什么?

编辑:

将处理程序更改为

- 网址:/

结果:

2018-01-06 00:17:30 default[20180106t010915]  "GET / HTTP/1.1" 404

.. 而不是?

最佳答案

标准环境提供主程序并运行http服务器。将初始化代码放在 init() 函数中。不要使用 package main。

package app

import (
"github.com/cbll/stockmarket-service/lib"
"net/http"
)

func init() {
go lib.GetStockData()
http.HandleFunc("/", lib.StocksHandler)
}

关于google-app-engine - Google App Engine Golang 返回 404 页面未找到,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48123067/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com