Cloud Foundry - Маршрутизация по контексту показывает страницу 404 Not Found - PullRequest
0 голосов
/ 07 октября 2019

Я хочу использовать контекстную маршрутизацию для доступа к приложению, которое я пытаюсь развернуть. Я хочу, чтобы пользователи могли получить доступ к приложению только по указанному ниже URL-адресу.

https://my-app.domain.int/foo

Ниже приведено содержимое файла Staticfile.txt.

pushstate: enabled

Ниже приведено содержимое файла mainfest.yml.

---
applications:
 - name: my-app
   memory: 1G
   instances: 1
   path: .
   routes:
    - route: my-app.domain.int/foo
   buildpack: staticfile_buildpack

Ниже приведена структура каталогов.

dist
- index.html
- Staticfile.txt
- mainfest.yml

Я пробовал следующие решения, но это не помогло.

  1. ОблакоКарта Литейного маршрута не работает, когда указан путь
  2. Контекстная маршрутизация для двух разных приложений

Когда я получаю доступ к URL, я получаю 404 НеНайдена страница. Я хочу знать, что я что-то упускаю. Как заставить работать контекстный путь.

[Примечание. Я использую службу Azure Pivotal PCF и сервер nginx]

1 Ответ

1 голос
/ 07 октября 2019

Просто переименуйте Staticfile.txt в Staticfile (без расширения).


static_buildpack (в текущей реализации) генерирует nginx.conf на основе конфигурации Staticfile: https://docs.cloudfoundry.org/buildpacks/staticfile/index.html#staticfile

Для лучшего понимания попробуйте пример ниже.

Нажмите дерево каталогов my-app

  • my-app:
- index.html # with title "root-index" 
- manifest.yml 
- Staticfile 
- public/ 
  - bar/
    - index.html # with title "bar-index"
  • manifest.yml:
---
applications:
 - name: my-app
   routes:
   - route: my-app.example.com/foo
   - route: my-app.example.com/bar
   buildpacks: 
   - https://github.com/cloudfoundry/staticfile-buildpack.git # latest
  • Staticfile:
root: public
pushstate: enabled

Проверьте это

- Проверьтесгенерировано nginx.conf:

(cf ssh my-app cat /home/vcap/app/nginx/conf/nginx.conf)

# [...] #
http { 
    # [...] #
    server { 
        listen 8080; 
        server_name localhost; 

        # Based on the Staticfile: "root: public"
        root /home/vcap/app/public;

        # Based on the Staticfile: "pushstate: enabled"
        if (!-e $request_filename) {
            rewrite ^(.*)$ / break;
        }

        location / { 
            index index.html index.htm Default.htm; 
        } 
        location ~ /\. { 
            deny all; 
            return 404; 
        } 
    } 
}   

- Проверьте URL:

...