YAML рендеринг index.html каждый раз, когда любой PHP вызывается в gCloud App Engine - PullRequest
0 голосов
/ 15 ноября 2018

Я учусь, как переместить мой существующий проект PHP в gCloud.Для этого я создал проект AppEngine и разместил там свой код.

Кажется, все работает, кроме файлов PHP.

Когда я запускаю свой проект, запускаются индексные файлы (как указанов app.yaml), а затем, где должен выполняться PHP, он отображает файл index.html.Это создает смертельный цикл индекса, вызывающего PHP, вызывающего индекс, вызывающего PHP: (*

Я уверен, что мой app.yaml неверен, но я не могу выяснить, где проблема.

Myyaml выглядит так:

runtime: php55
api_version: 1
threadsafe: true
handlers:  
- url: /dialpad_research/(.*\.(appcache|manifest))
  mime_type: text/cache-manifest
  static_files: dialpad_research/static/\1
  upload: dialpad_research/static/(.*\.(appcache|manifest))

- url: /dialpad_research/static
  static_dir: dialpad_research/static

# image files
- url: /dialpad_research/static/(.*\.(bmp|gif|ico|jpeg|jpg|png))
  static_files: static/\1
  upload: static/(.*\.(bmp|gif|ico|jpeg|jpg|png))
# dialpad root
- url: /dialpad_research.*
  static_files: dialpad_research/static/index.html
  upload: dialpad_research/static/index.html

- url: /dialpad_research/api/(.+\.php)$
  script: api/\1

Любая помощь приветствуется.

Структура папок выглядит следующим образом:

Root
|
---- app.yaml
---- dialpad_research (folder)
     |
     ---- static (folder with index file)
     ---- api (folder with PHP files)

1 Ответ

0 голосов
/ 15 ноября 2018

Вы должны быть осторожны с соответствием регулярному выражению. Этот шаблон URL:

- url: /dialpad_research/static

будет соответствовать:

- url: /dialpad_research/static(anything to follow)

Таким образом, он никогда не попадет в обработчик ниже:

- url: /dialpad_research/static/(.*\.(bmp|gif|ico|jpeg|jpg|png))

То же для:

- url: /dialpad_research.*

После этого он никогда не сможет добраться до:

- url: /dialpad_research/api/(.+\.php)$

Переставьте ваши обработчики так, чтобы они не закорачивались.

Далее /api/ и /static/ не находятся в корне, поэтому ваши пути к ним неверны. Смотрите ниже:

handlers:  
- url: /dialpad_research/(.*\.(appcache|manifest))
  mime_type: text/cache-manifest
  static_files: dialpad_research/static/\1
  upload: dialpad_research/static/(.*\.(appcache|manifest))

# image files
- url: /dialpad_research/static/(.*\.(bmp|gif|ico|jpeg|jpg|png))
  static_files: dialpad_research/static/\1
  upload: dialpad_research/static/(.*\.(bmp|gif|ico|jpeg|jpg|png))

- url: /dialpad_research/api/(.+\.php)$
  script: dialpad_research/api/\1

- url: /dialpad_research/static
  static_dir: dialpad_research/static

# dialpad root
- url: /dialpad_research.*
  static_files: dialpad_research/static/index.html
  upload: dialpad_research/static/index.html
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...