AppEngine: ошибка 404, кроме домашней страницы на сервере развертывания (отлично работает на локальном сервере) - PullRequest
0 голосов
/ 14 сентября 2018

Я пытаюсь обслуживать свой первый статический веб-сайт с помощью Google App Engine.Но случается так, что я получаю ошибку 404 not found, кроме домашней страницы на сервере развертывания.Странно то, что все нормально работает при локальном запуске с 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 - 

1 Ответ

0 голосов
/ 16 сентября 2018

Запрос /art/ соответствует URL вашего второго обработчика.

Неправильное выражение upload вместо

upload: /(.*)/index.html

это должно быть (у вас нет круглых скобок в фактическом пути к файлу, и это должен быть путь относительно вашего каталога app / service):

upload: .*/index.html

Запрос /favicon.ico (который по умолчанию делают многие браузеры) не соответствует ни одному из ваших шаблонов обработчиков url. Похоже, что ваше приложение предназначено для посещения обычными браузерами, поэтому вы можете добавить обработчик и соответствующий статический файл для его покрытия, в противном случае такие 404 ожидаются / нормальные.

Запрос / соответствует первому обработчику url, файл найден (нет 404), но я не знаю, почему он возвращает 204. Может быть, что-то с содержимым файла?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...