#nginx #nginx-config #nginx-location
#nginx #nginx-config #nginx-местоположение
Вопрос:
Для демонстрации у меня есть очень простая настройка приложения. Он состоит из двух проектов, app01 и app02, Обе папки находятся в папке apps
apps
├── app01
│ ├── index.html
│ ├── style.css
│ └── subpage
│ └── index.html
└── app02
├── index.html
└── style.css
Фактический псевдоним работает. Когда я иду my-apps.local:3460
, я вижу Welcome to App 01
, и когда я иду my-apps.local:3460/blog
, я вижу Welcome to App 02 (Blog)
Однако CSS (или любой другой статический файл) не загружается в моем /blog
местоположении.
В моем файле Nginx conf для этого проекта я также настроил очень простой:
listen *:3460;
server_name example.com;
location ~* ^/blog2 {
alias /Users/username/test/apps/app2/;
try_files $uri index.html =404;
index index.html;
}
location /blog1 {
alias /Users/username/test/apps/app1/;
try_files $uri index.html =404;
index index.html;
}
Ответ №1:
location /blog1 {
alias /example.com/apps/app01;
}
location /blog2 {
alias /example.com/apps/app02;
}
apps/app01/index.html
Ваши HTML-файлы должны использовать относительные ссылки для всех URI. Абсолютные URI будут указывать на корень вашего сервера, что позволит обойти перехват «/blog1»
https://example.com/blog1/
<link rel="stylesheet" href="style.css">
Welcome to 01
apps/app01/subpage/index.html
Для подстраниц продолжайте использовать относительные ссылки, но определите относительный корневой путь с <base>
помощью тега.
https://example.com/blog1/subpage/
<base href="/blog1/">
<link rel="stylesheet" href="style.css">
Welcome to subpage 01
В качестве альтернативы вы можете опустить <base>
и сохранить ../
расположение родительских папок, которые становятся громоздкими при перемещении файлов.
<link rel="stylesheet" href="../style.css">