Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular Nginx不提供docker映像中托管的角度_Angular_Nginx_Ubuntu 18.04 - Fatal编程技术网

Angular Nginx不提供docker映像中托管的角度

Angular Nginx不提供docker映像中托管的角度,angular,nginx,ubuntu-18.04,Angular,Nginx,Ubuntu 18.04,这个问题已经被问了一百万次,我们已经尝试了几乎所有我们能找到的解决方案来尝试和解决它 我们正在通过映射80:7021为一个角度应用程序提供服务,该应用程序位于默认位置/usr/share/NGINX/html/*内的Docker映像(NGINX Alpine映像)中 在我们的Linux机器上,我们连接了一个容器来提供一组图像,其中一个就是这个角度图像 角度图像是以--prod base href=“/v2/”作为最终URL构建的,该URL应该为应用程序提供服务,并且在Linux机器上的NGINX

这个问题已经被问了一百万次,我们已经尝试了几乎所有我们能找到的解决方案来尝试和解决它

我们正在通过映射80:7021为一个角度应用程序提供服务,该应用程序位于默认位置/usr/share/NGINX/html/*内的Docker映像(NGINX Alpine映像)中

在我们的Linux机器上,我们连接了一个容器来提供一组图像,其中一个就是这个角度图像

角度图像是以--prod base href=“/v2/”作为最终URL构建的,该URL应该为应用程序提供服务,并且在Linux机器上的NGINX中连接了一个/v2/位置

在Linux机器上NGINX的默认配置中,我们有一个位置/v2/连接和一个到的代理传递http://localhost:7021

在Linux上的NGINX中,我们也相应地设置了mime.types,以确保JS/CSS的服务是正确的

但是,不提供JS/CSS文件。默认情况下,如果NGINX找不到文件,它将提供标准index.html文件,从而导致可怕的“resource services as text/html”错误

我们已经尝试了各种可能的方案来解决这个问题,所以我现在转到这里,希望有人看到这个行为没有得到解决,并且可以提供除mime.types和location/.css之外的解决方案

再次重申我们的两种情况

1.)基于NGINX Alpine的Docker图像

此图像包含Angular应用程序的内置版本

应用程序文件被复制到
/usr/share/nginx/html/*

2)主机箱

主机盒运行的是Ubuntu18.04发行版,拥有NGINX 1.14.2和Docker 19.03.6

主机框有一个容器,用于运行一组图像,包括上面讨论的角度图像。NGINX中的主机框在/v2/*处为角度应用程序设置了一个/location,意思是:

,这就是我们使用/v2/的base href创建帐户的原因


就我们所知,这是标准做法,一切都应该正常进行。但事实并非如此。我们已经用尽了谷歌搜索。下一步我们可以尝试什么?

如果用inspect打开浏览器,控制台中会显示什么?它将尝试从找不到的url获取一些资源。有什么错误?有时后端发送错误或没有MIME类型的头。与某些安全标头一起,这可能会导致问题。至少这是我的经验。仅交付完整的
/v2/
是不够的,您必须交付具有特定标题的特定路径。为了您的利益,我希望这样的路径不会太多。@PanagiotisBougioukos浏览器中的控制台(Chrome)给我提供的典型资源是text/html,而不是预期的text/css或text/javascript,但是,下一步解决此问题的各种方法,到目前为止还没有对我们起作用。@qräbnö这就是我担心的,因为这将成为一个问题。我们完全可以将应用程序发布到它自己的url/自己的dns,但是,这有待CAB批准,可能需要一些时间。呃,a
location/v2/blah.php
with
more_set_headers'Content Type:application/x-javascript'就足够了。这毫无意义,但当它发生时,你必须处理它。如果你打开浏览器,检查它在控制台中显示什么?它将尝试从找不到的url获取一些资源。有什么错误?有时后端发送错误或没有MIME类型的头。与某些安全标头一起,这可能会导致问题。至少这是我的经验。仅交付完整的
/v2/
是不够的,您必须交付具有特定标题的特定路径。为了您的利益,我希望这样的路径不会太多。@PanagiotisBougioukos浏览器中的控制台(Chrome)给我提供的典型资源是text/html,而不是预期的text/css或text/javascript,但是,下一步解决此问题的各种方法,到目前为止还没有对我们起作用。@qräbnö这就是我担心的,因为这将成为一个问题。我们完全可以将应用程序发布到它自己的url/自己的dns,但是,这有待CAB批准,可能需要一些时间。呃,a
location/v2/blah.php
with
more_set_headers'Content Type:application/x-javascript'就足够了。这没有道理,但当它发生时,你必须处理它。