2017-04-12 2 views
1

KontextHTTP-Anforderung für Ressourcen (js, CSS) liefert einen Fehler 404

I einen Winkel 2 app auf meinem Kubernetes Cluster auf GCE eingesetzt. Ich kann darauf zugreifen, indem ich einen Load Balancer-Dienst über die öffentliche IP-Adresse ohne Probleme verwende. Allerdings wollte ich auf den Pfad /assessment zugreifen und daher einen Nginx-Reverse-Proxy mit den folgenden Inhalten einrichten.

Config

$ 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. 
} 

Symptome

Während die HTML gerendert wird, Ressourcen (css, js) nicht gefunden werden und ein 404 würde stattdessen zurückgegeben werden. Irgendeine Idee, warum das passiert? Mir ist auch aufgefallen, dass wenn ich den Ort auf / stelle, alles perfekt funktioniert.

logs

Wie Sie in dem Protokollauszug unten, die Anforderung für eine Datei direkt auf root würde sehen können, durchgeführt. In diesem Fall: /inline.508911a34e3d7fcf458e.bundle.js statt /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/“ 
+1

[Diese Antwort] (http://stackoverflow.com/questions/43057099/why-does -angular2-webpack-starter-work-with-localhost3000-aber-nicht-mit/43065258 # 43065258) kann helfen. –

+0

@RichardSmith Ich verwende bereits pfadrelative Variablen, z. 'src =" inline.21b67490345418068f8f.bundle.js "'. Es ist auch kein Einzweckserver, da ich von meinem nginx reverse proxy zu mehreren APIs und SPAs routen möchte. Das heißt, dass es für mein Szenario wirklich keine Lösung gibt ?! – Ronin

+0

Die Protokolle stimmen nicht überein. Dieser Protokolleintrag scheint nicht pfadrelativ zu sein. –

Antwort

0

Die html5 base url hat den Standort in nginx definiert entsprechen.

  • nginx Ort: location /assessment/
  • Basis-URL in index.html des angular2 App: <base href="/assessment/">
Verwandte Themen