Ich habe eine Knoten App. Das ist so konfiguriert, statische Dateien zu bedienen von: app.use(express.static(path.join(__dirname, '../public')));
Und ich benutze einige Auth Middlewares auf anderen Routen. Das Problem tritt auf, wenn ich ein Bild anwähle, das auf dem Server nicht existiert. In diesem Fall sieht es so aus, als würde express versuchen, diese Anfrage durch alle Middlewares zu schicken, die ich für NICHT-statischen Inhalt habe. Gibt es eine Möglichkeit, 404 nur für fehlende statische Assets zu senden, anstatt alle Middlewares für fehlende Dateien erneut auszulösen?nodeJs/Express Umgang mit fehlenden statischen Dateien
Antwort
Die Middleware express.static()
funktioniert standardmäßig so, dass sie nach der Datei im Zielverzeichnis sucht. Wenn sie nicht gefunden wird, gibt sie sie an die nächste Middleware weiter.
Aber es hat eine fallthrough
Option, die, wenn Sie es auf false
setzen, dann wird 404 sofort jede fehlende Datei, die im statischen Verzeichnis sein sollte.
fallthrough
Wenn diese Option wahr, Client Fehler wie eine schlechte Anfrage oder eine Anforderung an eine nicht vorhandene Datei diese Middleware verursacht einfach Anruf nächste() um die nächste Middleware im Stack aufzurufen. Bei false, diese Fehler (auch 404s), wird nächsten (err) aufrufen.
Setzen Sie diese Option auf true, sodass Sie mehrere physische Verzeichnisse derselben Webadresse oder Routen zum Ausfüllen nicht vorhandener Dateien zuordnen können.
Verwenden falsch, wenn Sie diese Middleware auf einem Pfad angebracht sind entworfen streng ein einzelne Dateisystemverzeichnis zu sein, die für Kurzschließen 404s für weniger Aufwand ermöglicht. Diese Middleware wird auch antworten auf alle Methoden.
Beispiel:
app.use("/public", express.static("/static", {fallthrough: false}));
- 1. Umgang mit fehlenden Knoten mit JAXB
- 2. Umgang mit fehlenden Daten in Pandas
- 3. Umgang mit fehlenden Daten in R
- 4. Pandas resample Umgang mit fehlenden Daten
- 5. R gbm Umgang mit fehlenden Werten
- 6. Bayesian Netzwerke mit dem Catnet-Paket: Umgang mit fehlenden Daten
- 7. Umgang mit fehlenden Parametern in URL mit Flask/Python 3
- 8. Rails 4 Starke Parameter - Umgang mit fehlenden Modell Params Hash
- 9. Umgang mit vielen temporären kleinen Dateien
- 10. Umgang mit großen Dateien in Haskell
- 11. JCSompress - Umgang mit Sonderzeichen in JS-Dateien?
- 12. Dienen statischen Dateien mit Django ohne STATIC_URL
- 13. Django - Ein Bild mit statischen Dateien anzeigen
- 14. Express/Node/Cloud9 - Probleme mit statischen Dateien
- 15. Ant-Concat-Task bei fehlenden Dateien melden
- 16. Mercurial - mit fehlenden Dateien Fehler nicht begehen fusionieren
- 17. Tab-Dateien in Pandas Datenrahmen nach Spalten mit fehlenden Kopfzeilen
- 18. Lag mit fehlenden Daten
- 19. Umgang mit mehreren Javascript-Dateien mit Maven & Jasmine
- 20. Umgang mit Abschnitten von INI-Dateien mit Boost.Program_options
- 21. Umgang mit Dateien Bestellung über Verkettung mit WebPack?
- 22. Subversion - Umgang mit Codegenerierung
- 23. Inodes Umgang mit Verzeichnissen
- 24. Umgang mit der fehlenden Unterstützung von Expression Blend für C++/CLI-Projekte
- 25. Immuconf mit Clojure nicht Dateien Baum Config Umgang
- 26. Laden von riesigen XML-Dateien und Umgang mit MemoryError
- 27. C++ Umgang mit gemeinsamen Parametern für mehrere ausführbare Dateien
- 28. Möglichkeit zum Umgang mit großen Dateien in Wolfram Mathematica
- 29. Umgang mit sehr großen netCDF-Dateien in Python
- 30. Rails, die keine statischen Dateien bereitstellen
Danke. Arbeitete wie Charme. Ich würde auch hinzufügen, dass dies eine neue Funktion des ** serve-static ** -Moduls ist. Ich habe ** express 4.2.0 ** verwendet und diese Funktion war nicht in der Version von ** serve-static ** verfügbar, die mit express geliefert wird. Also benötigt um zu aktualisieren. – Max
@Max - Ich wusste nicht, dass es nur ein neues Feature war - gut zu wissen. Das Express-Dokument identifiziert häufig nicht, welche Versionsfunktionen hinzugefügt wurden. – jfriend00