Ich habe meinen Code auf die einfachste Express-JS-App reduziert, die ich machen konnte:
var express = require("express"),
app = express.createServer();
app.use(express.static(__dirname + '/styles'));
app.listen(3001);
Mein Verzeichnis sieht folgendermaßen aus:
static_file.js
/styles
default.css
Beim Zugriff wird http://localhost:3001/styles/default.css
jedoch der folgende Fehler angezeigt:
Cannot GET / styles /
default.css
Ich benutze express 2.3.3
und node 0.4.7
. Was mache ich falsch?
Antworten:
Versuchen Sie es
http://localhost:3001/default.css
.Um
/styles
in Ihrer Anforderungs-URL zu haben, verwenden Sie:Schauen Sie sich die Beispiele auf dieser Seite an :
quelle
path.join
diese Option immer , um Probleme mit plattformübergreifenden Verzeichnis-Trennzeichen zu beheben. path.join (__ dirname, '/')Ich habe das gleiche Problem. Ich habe das Problem mit folgendem Code behoben:
Beispiel für eine statische Anforderung:
Ich brauche eine einfachere Lösung. Existiert es?
quelle
default.css
sollte verfügbar sein beihttp://localhost:3001/default.css
Das
styles
Inapp.use(express.static(__dirname + '/styles'));
weist express nur an, imstyles
Verzeichnis nach einer statischen Datei zu suchen, die bereitgestellt werden soll. Es ist dann nicht (verwirrend) Teil des Pfades, auf dem es verfügbar ist.quelle
/public
denen hatcss
,js
,img
Ordner , so dass Sie kannhttp://localhost:3001/css/default.css
:)Diese Arbeit für mich:
quelle
In Ihrer server.js:
Sie haben Express und App separat deklariert, einen Ordner mit dem Namen "public" oder nach Belieben erstellt und können dennoch auf diesen Ordner zugreifen. In Ihrer Vorlage src haben Sie den relativen Pfad von / public (oder den Namen Ihres Ordnerschicksals zu statischen Dateien) hinzugefügt. Achten Sie auf die Bars auf den Routen.
quelle
Was für mich funktioniert hat ist:
Anstatt
app.use(express.static(__dirname + 'public/images'));
in Ihre app.js zu schreibenEinfach schreiben
app.use(express.static('public/images'));
dh entfernen Sie den Stammverzeichnisnamen im Pfad. Und dann können Sie den statischen Pfad effektiv in anderen js-Dateien verwenden. Zum Beispiel:
Hoffe das hilft :)
quelle
Ich verwende Bootstrap CSS, JS und Fonts in meiner Anwendung. Ich habe einen Ordner namens
asset
root im Verzeichnis der App erstellt und alle diese Ordner darin abgelegt. Dann in der Serverdatei folgende Zeile hinzugefügt:In dieser Zeile kann ich die Dateien, die sich im
asset
Verzeichnis befinden, über das/asset
Pfadpräfix wie folgt laden :http://localhost:3000/asset/css/bootstrap.min.css
.Jetzt kann ich in den Ansichten einfach CSS und JS wie folgt einfügen:
quelle
Um statische Dateien (CSS, Bilder, JS-Dateien) bereitzustellen, sind nur zwei Schritte erforderlich:
Übergeben Sie das Verzeichnis der CSS-Dateien an die integrierte Middleware express.static
Um auf CSS-Dateien oder Bilder zuzugreifen, geben Sie einfach die URL http: // localhost: port / filename.css ein. Beispiel : http: // localhost: 8081 / bootstrap.css
Hinweis: Um CSS-Dateien mit HTML zu verknüpfen, geben Sie einfach ein
<link href="file_name.css" rel="stylesheet">
wenn ich diesen Code schreibe
Um auf die statischen Dateien zuzugreifen, geben Sie einfach url: localhost: port / css / filename.css ein. Beispiel: http: // localhost: 8081 / css / bootstrap.css
Hinweis: Um CSS-Dateien mit HTML zu verknüpfen, fügen Sie einfach die folgende Zeile hinzu
quelle
Dieser hat für mich gearbeitet
quelle
Versuchen Sie, mit http: // localhost: 3001 / default.css darauf zuzugreifen .
Sie geben ihm tatsächlich den Namen eines Ordners, dh Stile, die nicht Ihrem Vorort entsprechen.
quelle
Ich finde meine CSS-Datei und füge eine Route hinzu:
Dann scheint es zu funktionieren.
quelle
.use()
undexpress.static()
Methoden verwenden sollten, um zu senden, wohin Sie Ihre Dateien liefern. Andernfalls haben Sie einen dieser Router pro Datei in Ihrem öffentlichen Verzeichnis, und das ist viel Aufwand für die Wartung.Stellen Sie außerdem sicher, dass der Pfad der statischen Dateien mit / (ex ... / assets / css) ... beginnt, um statische Dateien in einem beliebigen Verzeichnis über dem Hauptverzeichnis (/ main) bereitzustellen.
quelle
wenn Ihr Setup
Geben Sie dann app.js ein
und verweisen Sie auf Ihre style.css: (in einer .pug-Datei):
quelle
.
Verwenden
app.use( express.static('public'));
und im
index.html
richtigen Pfad der Skripte zu<script type="text/javascript" src="/javasrc/example.js"></script>
Und jetzt funktionieren alle Dinge gut.
quelle
statisches Verzeichnis
Überprüfen Sie das obige Bild (statisches Verzeichnis) auf die Verzeichnisstruktur
quelle