AppEngine:部署服务器上的主页除外404错误(在本地服务器上正常工作)

问题描述 投票:2回答:1

我正在尝试使用谷歌应用引擎服务我的第一个静态网站。但是,除了部署服务器上的主页之外,我发现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 - 
google-app-engine
1个回答
0
投票

/art/请求与您的第二个处理程序URL匹配。

upload声明不正确,而不是

upload: /(.*)/index.html

应该是(实际文件路径中没有括号,它应该是相对于app / service目录的路径):

upload: .*/index.html

/favicon.ico请求(许多浏览器默认制作)与您的任何处理程序url模式都不匹配。您的应用似乎打算由常规浏览器访问,因此您可能希望添加处理程序和匹配的静态文件以覆盖它,否则此类404是预期/正常的。

/请求匹配第一个处理程序url,找到文件(没有404),但我不知道为什么它返回204.也许文件内容的东西?

© www.soinside.com 2019 - 2024. All rights reserved.