Приложение Production React работает, за исключением того, что путь перенаправления для входа в систему Spotify не найден на сервере

Приложение Production ReactJS интегрирует Spotify Web Api (https://developer.spotify.com/documentation/web-api/reference-beta/) с использованием Google App Engine: https://widget-dashboard-app.appspot.com/

Все маршруты (/settings, /about, /contact) работают должным образом, НО, когда пользователь пытается войти в Spotify, путь перенаправления /settings/#access_token=[BIG-LONG-TOKEN]&token_type=Bearer&expires_in=3600 приводит к этой ошибке через GAE:

Error: Not Found
The requested URL /settings/ was not found on this server.

Сначала я подумал, что у меня проблема в моем app.yaml файле:

# [START runtime]
runtime: python27
api_version: 1
threadsafe: true
# [END runtime]

# [START handlers]
handlers:
- url: /
  static_files: build/index.html
  upload: build/index.html
- url: /
  static_dir: build
- url: /.*
  static_files: build/static/\1
  upload: build/static/.*
- url: /settings/.*
  static_files: build/static/\1
  upload: build/static/.*
# [END handlers]

В течение двух недель я рыскал по Интернету в поисках того, в чем может быть проблема. Я все прочитал. файл. документы

Фактический результат должен быть таким: Пользователь входит в систему через веб-API Spotify, перенаправляется обратно на https://widget-dashboard-app.appspot.com/settings/#access_token=[BIG-LONG-TOKEN]&token_type=Bearer&expires_in=3600, и его браузер начинает воспроизводить музыку в течение нескольких секунд. Это работает в разработке.


person emilyannemoses    schedule 11.07.2019    source источник


Ответы (1)


Поскольку это SPA, а ваша маршрутизация обрабатывается приложением, вам нужен комплексный маршрут, который попадет на ваш основной index.html. Итак, похоже, ваше правило с подстановочными знаками должно быть таким:

url: /.*
  static_files: build/index.html
  upload: build/index.html

Я не думаю, что тебе понадобится /settings/ один

person Will Jenkins    schedule 11.07.2019