我正在尝试使用谷歌应用引擎服务我的第一个静态网站。但是,除了部署服务器上的主页之外,我发现404找不到错误。奇怪的是,使用dev_appserver.py在本地运行时一切正常,我做错了什么?
这是我的app.yaml文件:
runtime: go
api_version: go1
handlers:
- url: /$
static_files: index.html
upload: index.html
- url: /(.*)/$
static_files: \1/index.html
upload: /(.*)/index.html
- url: /(.*\.(gif|png|jpg|js|css))$
static_files: \1
upload: .*\.(gif|png|jpg|js|css)$
- url: /.*
script: _go_app
这是一些来自命令gcloud app logs
的日志,当我尝试通过get请求访问其他页面时(更具体地来说,我在尝试url mydomain/art/
,它应该被定向到我的项目剧目中的art/index.html
文件):
2018-09-16 10:22:51 default[version] "GET /art/ HTTP/1.1" 404
2018-09-16 10:22:51 default[version] "GET /favicon.ico HTTP/1.1" 302
2018-09-16 10:22:51 default[version] "GET / HTTP/1.1" 204
而在本地服务器上没问题:
INFO 2018-09-16 10:23:12,434 module.py:880] default: "GET /art/ HTTP/1.1" 304 -
/art/
请求与您的第二个处理程序URL匹配。
upload
声明不正确,而不是
upload: /(.*)/index.html
应该是(实际文件路径中没有括号,它应该是相对于app / service目录的路径):
upload: .*/index.html
/favicon.ico
请求(许多浏览器默认制作)与您的任何处理程序url
模式都不匹配。您的应用似乎打算由常规浏览器访问,因此您可能希望添加处理程序和匹配的静态文件以覆盖它,否则此类404是预期/正常的。
/
请求匹配第一个处理程序url
,找到文件(没有404),但我不知道为什么它返回204.也许文件内容的东西?