Как заставить любой URL работать для СТАТИЧЕСКИХ ФАЙЛОВ с app.yaml в GAE? - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть каталог сборки create-реагировать-app, поместил его в облачное хранилище, добавил также файл app.yaml:

runtime: python27
api_version: 1
threadsafe: true

handlers:
- url: /
  static_files: build/index.html
  upload: build/index.html
  secure: always
- url: /
  static_dir: build

Размещено на движке приложения и вуаля - все работает!

Однако, хотя example-domain.com / работает, example-domain.com / abc не работает. Я получаю Ошибка: не найден Запрашиваемый URL / abc не найден на этом сервере.

Я попытался заменить "/" на "/.*" в URL обработчика, но результат возвращает пустую страницу :(.

Есть предложения? :)

Ответы [ 2 ]

0 голосов
/ 01 мая 2018

Нашел решение. Оказывается, когда я использую static_dir, каждый URL-адрес, который начинается с этого обработчика url , включен. Учитывая, что каждый статический файл находится в директории build / static, я просто использовал url: / static для всего, что должно быть обработано из этой папки.

Create-реагировать-приложение создает несколько файлов .json, которые находятся в директории сборки, поэтому я просто указал на них по отдельности, так как их всего несколько.

После всего этого я могу использовать url: /.*, чтобы подразумевать, что любой другой URL должен просто указывать на страницу index.html.

Это работает: (первый обработчик, вероятно, избыточен)

  runtime: python27
   api_version: 1
   threadsafe: true

   handlers:
   - url: /
     static_files: build/index.html
     upload: build/index.html
     secure: always
   - url: /static
     static_dir: build/static
   - url: /manifest.json
     static_files: build/manifest.json
     upload: build/manifest.json
   - url: /asset-manifest.json
     static_files: build/asset-manifest.json
     upload: build/asset-manifest.json
   - url: /service-worker.json
     static_files: build/service-worker.json
     upload: build/service-worker.json
   - url: /pageIcon.png
     static_files: build/pageIcon.png
     upload: build/pageIcon.png
   - url: /.*
     static_files: build/index.html
     upload: build/index.html
     secure: always
0 голосов
/ 30 апреля 2018

Во-первых, у вас есть дубликаты обработчиков для /. Вы никогда не получите второй обработчик.

Вы можете обслуживать статические файлы любого типа, используя регулярные выражения в своем обработчике, например:

- url: /(.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg|html))$
  static_files: build/\1
  upload: build/.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg|html)$
  secure: always
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...