Nginx 服务 Angular returns 404

Nginx serving Angular returns 404

我正在尝试通过 nginx 运行 生产构建的 Angular 应用程序。 目前,我可以很好地为 index.html 提供服务,但问题是所有 *.js 和 *css 被引用为索引本身内部的源,那些 return 是 404 错误。 我一直在使用 root 或别名在不同的配置之间来回切换,但 none 似乎可以解决问题。

首先,我使用以下方法构建应用:

ng build --configuration production --aot

注意:上述命令会创建一个 dist 文件夹,其中包含 运行 应用程序所需的所有文件,然后我移动所有这些文件到路径 /apps/customer-ui

文件夹结构如下:

/apps
  /customer-ui
    /index.html
    /(all other files resulting from build)

这是我的nginx.conf

...

http {

    ...
    
    server {
        listen 80;
        server_name localhost;
        root /apps;
        index index.html;
        
        location / { }
        
        location ^~/customer-ui {
            alias /apps/customer-ui/;
            try_files $uri $uri/ /customer-ui/index.html =404;
        }
        
    }
}

目前,访问 http://localhost/customer-ui returns 是正确的索引,但也是上面提到的 404,因为引用指向 http://localhost/filename.js 而不是http:///localhost/customer-ui/filename.js

Console errors here

非常感谢任何帮助。

由于所有必需的文件都在 customer-ui 目录中,因此最好将所有路径都指向那里,如下所示:

        root /apps/customer-ui;
        index index.html;
        
        location / {
            try_files $uri $uri/ /index.html =404;
        }

或者,您可以使用这个(不推荐,因为它相当混乱):

        root /apps;
        index index.html;
        
        location / {
            alias /apps/customer-ui/;
            try_files $uri $uri/ index.html =404;
        }