У нас возникла проблема с правильным отображением страниц для маршрутов Angular, обслуживаемых с помощью Nginx. В нашем проекте Angular наш базовый href - / dashboard. У проекта есть два разных маршрута, указывающих на / dashboard / data-analysis и / dashboard / data-visual.
Вот мой базовый файл nginx.conf:
server{
listen 80;
server_name localhost;
location /dashboard/ {
alias C:/Users/C123/Desktop/html/dashboard;
index index.html;
try_files $url $url/ /dashboard/index.html;
}
}
Когда я перехожу на localhost / dashboard / или localhost / dashboard / data-analysis, любая из страниц загружает index.html из C: / Users / C123 / Desktop / html / dashboard /, но затем не может загрузить среду выполнения polyfill.js. js style.js и т. д., как определено в теге <script>
файла index.html.
Более того, Nginx пытается загрузить эти файлы из C: /Users/C123/nginx/nginx-1.16.1/html/ вместо моего псевдонима (C: / Users / C123 / Desktop / html / dashboard).
Есть ли способ определить в блоке панели инструментов / местоположения, где он будет читать все из index.html моего псевдонима? Я не хочу определять корень снаружи или вторичный блок местоположения только для файлов .js.
ОБНОВЛЕНИЕ (это решение сработало для меня):
server{
listen 80;
server_name localhost;
location /dashboard/ {
root C:/Users/C123/Desktop/html/
try_files $uri $uri/ /dashboard/index.html/
}
location /dashboard/
может определять местоположение файлов только для URI, начинающихся с/dashboard/
, если приложение не использует правильный базовый href для своих.js
файлов, то проблема связана с приложением, а не с Nginx. - person Richard Smith   schedule 28.04.2020