Nginx和Angular路由(找不到.js文件)

问题描述 投票:0回答:1

我们在正确显示使用Nginx服务的Angular路线的页面时遇到问题。在我们的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”时,任一页面都会从“ C:/ Users / C123 / Desktop / html / dashboard /”加载index.html,但随后无法加载index.html的<script>标记中定义的“ polyfill.js”,“ runtime.js”,“ style.js”等。

此外,Nginx尝试从“ C:/Users/C123/nginx/nginx-1.16.1/html/”而不是我的别名(C:/ Users / C123 / Desktop / html / dashboard)加载这些文件。

是否有一种方法可以在“ dashboard /”位置块中定义,它将从别名的index.html中读取所有内容?我既不想定义根目录,也不想只为“ .js”文件定义辅助位置块。

angular nginx nginx-location
1个回答
0
投票

您缺少root指令。

[root也应尝试加载所述文件或目录中的try_files

未经测试,但应该可以工作:

index.html

编辑:

如果您尝试访问server { listen 80; server_name localhost; location /dashboard/ { root C:/Users/C123/Desktop/html; try_files $uri $uri/index.html =404; } } 目录中的文件而未在请求中指定单词dashboard,则可以为此添加一个代码块以回退到该代码。

dashboard

请记住,当NGINX选择位置上下文时,将从提到的前缀位置中取最长匹配项>>

© www.soinside.com 2019 - 2024. All rights reserved.