Ich habe ein Problem mit meiner Nginx-Konfiguration. Ich habe 2 Server, einen mit nginx und einen mit meiner WebApp in symfony3. Hier ist meine Konfiguration:
%Vor%Die webSite funktioniert für alle PHP-Skripte, aber alle Assets (statische Dateien) sind defekte Dateien. Ich verstehe nicht genug, wie Nginx funktioniert, um anzuzeigen, was die statischen Dateien sind, und meinen Proxy zu "sagen", dass sie kein Skript sind.
Die Direktive try_files
versucht automatisch, statische Dateien zu finden und sie vor dem Aufgeben als statische Dateien zu verwenden und die Anfrage als Skript zu verarbeiten.
Prüft die Existenz von Dateien in der angegebenen Reihenfolge und verwendet die erste gefundene Datei für die Anfrageverarbeitung; Die Verarbeitung wird im aktuellen Kontext ausgeführt. Der Pfad zu einer Datei wird aus dem Dateiparameter gemäß den root- und alias-Anweisungen erstellt. Es ist möglich, die Existenz eines Verzeichnisses zu prüfen, indem ein Schrägstrich am Ende eines Namens, z. "$ Uri /". Wenn keine der Dateien gefunden wurde, wird eine interne Weiterleitung an die URL vorgenommen, die im letzten Parameter angegeben wurde.
Beachten Sie, dass, obwohl Sie bereits try_files
verwenden, Ihre Pfadbehandlung möglicherweise nicht der Spezifikation entspricht.
Was Ihre eigene Antwort mit einer vorübergehenden Lösung angeht, ist nichts falsch daran, eine oder zwei Neufassungen zu verwenden , aber das heißt, es sieht so aus wie Sie würde von der alias
-Richtlinie profitieren.
Definiert eine Ersetzung für den angegebenen Speicherort.
Sie haben jedoch nie erklärt, warum Sie Sachen aus /tmp
servieren. Beachten Sie, dass /tmp
oft automatisch von einigen cron
Skripten gelöscht wird, zB auf OpenBSD, dem /etc/daily
Skript würde automatisch find
und Dateien entfernen, die älter als etwa 7 Tage sind ( auf einer daily
-Basis , wie der Name schon sagt).
Zusammenfassend sollten Sie zunächst herausfinden, welche Zuordnung zwischen der Webansicht des Dateisystems und Ihrem Dateisystem besteht.
Wenn dann ein Präfix gefunden wird, verwenden Sie einfach ein separates location
für die Assets zusammen mit alias
.
Sonst, finde die Pfade für try_files
, um wie vorgesehen zu funktionieren.
Ich habe eine sehr hässliche Lösung gefunden, bis jemand eine bessere Lösung findet, hier ist was ich getan habe:
Hier ist meine neue Konfiguration:
%Vor%Und jetzt funktioniert es, alle js / css und Bilder sind gefunden.
Wenn jemand an eine "sauberere" Antwort denkt, kann er gerne antworten.
Tags und Links nginx symfony fastcgi nginx-location