Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/29.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 HTTP资源请求(js、css)返回404错误_Angular_Nginx_Kubernetes - Fatal编程技术网

Angular HTTP资源请求(js、css)返回404错误

Angular HTTP资源请求(js、css)返回404错误,angular,nginx,kubernetes,Angular,Nginx,Kubernetes,上下文 我在GCE的kubernetes集群上部署了angular 2应用程序。我可以通过公开的公共IP使用负载平衡器服务访问它,而不会出现任何问题。 但是,我打算在路径/assessment上访问它,因此使用以下内容设置nginx反向代理 配置 $ cat nginx/frontend.conf server { listen 443; ssl on; ssl_certificate /etc/tls/cert.pem; ssl_certific

上下文

我在GCE的kubernetes集群上部署了angular 2应用程序。我可以通过公开的公共IP使用负载平衡器服务访问它,而不会出现任何问题。 但是,我打算在路径
/assessment
上访问它,因此使用以下内容设置nginx反向代理

配置

$ cat nginx/frontend.conf 
server {
    listen 443;
    ssl    on;
    ssl_certificate     /etc/tls/cert.pem;
    ssl_certificate_key /etc/tls/key.pem;
    location /assessment/ {
        proxy_pass http://participation-frontend.default.svc.cluster.local/;
    }

    // etc.
}
症状

在呈现html时,不会找到资源(css、js),而是返回
404
。知道为什么会这样吗? 我还注意到,如果我将位置设置为
/
,那么一切都会正常工作

日志

正如您在下面的日志摘录中所看到的,对文件的请求将直接在root上执行。在这种情况下:
/inline.508911a34e3d7fcf458e.bundle.js
而不是
/assessment/GET/inline.508911a34e3d7fcf458e.bundle.js

“/etc/nginx/html/inline.508911a34e3d7fcf458e.bundle.js” failed (2: No such file or directory), client: 10.132.0.4, server: , request: “GET /inline.508911a34e3d7fcf458e.bundle.js HTTP/1.1", host: “<nginx-public-IP>”, referrer: “https://<nginx-public-IP>/assessment/“
“/etc/nginx/html/inline.508911a34e3d7fcf458e.bundle.js”失败(2:没有这样的文件或目录),客户端:10.132.0.4,服务器:,请求:“GET/inline.508911a34e3d7fcf458e.bundle.js HTTP/1.1”,主机:,引用方:https:///assessment/“
必须与nginx中定义的位置匹配

  • nginx位置:
    位置/评估/
  • angular2应用程序index.html中的基本url:
必须与nginx中定义的位置匹配

  • nginx位置:
    位置/评估/
  • angular2应用程序index.html中的基本url:

可能会有帮助。@RichardSmith我已经在使用路径相对变量,例如
src=“inline.21b67490345418068f8f.bundle.js"
。此外,它不是一个单一用途的服务器,因为我想从我的nginx反向代理路由到多个API和SPA。这意味着,我的场景确实没有解决方案?!日志不一致。该日志项似乎不是路径相关的。@RichardSmith可能我误解了你的答案。我只是在根html
I中检查了这一点ndex.html
加载的脚本/css文件不指向绝对路径:
。由于两个文件位于同一目录中,因此应该可以工作。或者我搞错了吗?您是否使用
/assessment
/assessment/
访问主页面?除非有相对路径,否则路径相对URI不起作用可能有帮助。@RichardSmith我已经在使用路径相对变量,例如
src=“inline.21b67490345418068f8f.bundle.js”
。此外,它不是一个单一用途的服务器,因为我想从我的nginx反向代理路由到多个API和SPA。这意味着,我的场景确实没有解决方案?!日志不一致。该日志项似乎不是路径相关的。@RichardSmith可能我误解了你的答案。我只是在根html
I中检查了这一点ndex.html
加载的脚本/css文件不指向绝对路径:
。由于两个文件位于同一目录中,因此应该可以工作。或者我搞错了吗?您是否使用
/assessment
/assessment/
访问主页面?除非有相对路径,否则路径相对URI不起作用e到。