angular - Nginx 不为 Docker 映像中托管的 Angular 提供服务
问题描述
这个问题已经被问了一百万次,我们几乎尝试了所有能找到的解决方案来尝试解决它。
我们正在通过映射 80:7021 为默认位置 /usr/share/nginx/html/* 内的 Docker 映像(NGINX Alpine 映像)托管一个 Angular 应用程序。
在我们的 Linux 机器上,我们连接了一个容器来提供一堆图像,其中一个就是这个 Angular 图像。
Angular 映像是使用 --prod base-href="/v2/" 构建的,因为应该为应用程序提供服务的最终 URL 有一个 /v2/ 位置连接在 Linux 机器上的 NGINX 中。
在 Linux 机器上 NGINX 的默认配置中,我们连接了一个位置 /v2/ 和一个指向 http://localhost:7021 的 proxy_pass
同样在 Linux 机器上的 NGINX 中,我们相应地设置了 mime.types,以确保正确提供 JS/CSS。
但是,不提供 JS/CSS 文件。默认情况下,如果 NGINX 找不到文件,它会提供标准的 index.html 文件,从而导致可怕的“资源作为文本/html”错误。
我们已经尝试了所有可能的方案来解决这个问题,所以我转过来希望有人看到这种行为没有得到解决,并且可以提供除 mime.types 和 location /.css 之外的解决方案。
再次重申我们所拥有的两种情况。
1.) 一个基于 NGINX Alpine 的 Docker 镜像
此图像包含--prod --base-href="/v2/"
我们的 Angular 应用程序的构建版本。
应用程序文件被复制到/usr/share/nginx/html/*
.
2.) 主机箱
主机箱运行 Ubuntu 18.04 发行版并具有 NGINX 1.14.2 和 Docker 19.03.6。
主机箱有一个容器设置为运行一组图像,包括上面讨论的 Angular 图像。NGINX 中的主机盒在 /v2/* 处为 Angular 应用程序设置了 /location,这意味着:
https://www.awesomewebsite/v2/{angular},这就是我们使用 /v2/ 的 base-href 构建帐户的原因。
据我们所知,这是标准做法,事情应该可以正常工作。然而事实并非如此。我们已经用尽了 Google 搜索。接下来我们可以尝试什么?
解决方案
推荐阅读
- java - 如何解决错误无法使用 th:href 解析为表达式
- python-3.x - 编译项目时 auto-py-to-exe 卡在 hook-gevent.py
- javascript - JS HTML CSS:如何使函数每次使用不同的变量动态重复,而不在函数内部重复相同的变量
- javascript - 单页 Jquery/Vanilla Javascript 上超过了多个轮播最大调用堆栈
- php - PHP HTML foreach 循环
- c - C Tinkercad 模型 Arduino 在哪个 lcd 中不工作?
- python - 如何从数据框列中的值列表中获取值
- mysql - 带有特殊字符的 MySQL concat
- php - 当用户在 WooCommerce 中购买产品时如何自动创建自定义帖子?
- ruby-on-rails - 带有头部请求的 ActiveStorage