【发布时间】:2026-01-25 03:25:02
【问题描述】:
我一直在使用 Golang 测试 Google App Engine SDK,但在提供静态 html 页面时遇到了问题。如果我在处理程序下的app.yaml 中添加内容,那很好,但是当我尝试从我的 Go 应用程序内部路由它时;尝试 url http://localhost:8080/tr 页面返回 404。
我的文件系统设置为:
/main.go
/app.yaml
/testRoute.html
我的主要app.go 看起来像这样:
import (
"fmt"
"net/http"
"github.com/gorilla/mux"
)
func init() {
r := mux.NewRouter()
r.HandleFunc("/", index)
r.HandleFunc("/tr", testRoute)
http.Handle("/", r)
}
func index(w http.ResponseWriter, r *http.Request) {
//No Issues here
fmt.Fprint(w, "Main Index.")
}
func testRoute(w http.ResponseWriter, r *http.Request) {
http.FileServer(http.Dir("testRoute.html")).ServeHTTP(w, r)
}
【问题讨论】:
-
当你得到 404 - 文件是否仍然与
app.yaml中的静态文件处理程序模式匹配?如果是这样 - 那么问题可能是默认情况下文件被认为是静态工件或应用程序可读文件。如果两者都需要,则需要在app.yaml中显式设置application_readable标志。 -
我已经更新了 app.yaml 以包含一个应用程序可读的文件处理程序(放置在静态文件夹中);我可以直接从浏览器访问索引文件,但是当使用 /tr 路由时,我仍然得到 404。
标签: google-app-engine go