У меня очень простая конфигурация, которую я хочу использовать для обслуживания нескольких одностраничных приложений
server {
root /var/www/;
index index.html;
location ~ ^/spa1/(.*?)$ {
root /var/www/spa1/;
}
location ~ ^/spa2/(.*?)$ {
root /var/www/spa2/;
}
error_page 404 /404.html;
}
Структура каталогов /var/www/
выглядит следующим образом:
www/
|- 404.html (Generic 404)
|- index.html (A plain html page with links to the apps)
|- spa1/
|- index.html (the index page for single page app 1)
|- spa1.js
|- spa1.css
|- static/ (folder containing spa1 static files)
|- spa2/
|- index.html (the index page for single page app 2)
|- spa2.js
|- spa2.css
|- static/ (folder containing spa1 static files)
Myбыло понимание, что при просмотре myserver.com/
будет возвращена страница index.html
в /var/www
, тогда как при посещении myserver.com/spa1/
или myserver.com/spa2/
будут возвращены соответствующие index.html
страницы для каждого отдельного приложения.Однако, похоже, что это не так - вместо этого, если я захожу на /spa1
или /spa2
, я получаю только корневую страницу index.html
, как если бы она игнорировала директиву root
для каждого приложения
Как дополнение, есть ли более правильный способ обслуживания нескольких одностраничных приложений, чем способ, которым я пытаюсь это сделать?