Normalerweise möchten Sie keinen Ihrer internen Pfade für die Struktur Ihres Servers nach außen offenlegen. Sie können /scripts
auf Ihrem Server eine statische Route erstellen, die die Dateien aus dem Verzeichnis abruft, in dem sie sich gerade befinden. Wenn sich Ihre Dateien also befinden "./node_modules/bootstrap/dist/"
. Dann sieht das Skript-Tag auf Ihren Seiten einfach so aus:
<script src="/scripts/bootstrap.min.js"></script>
Wenn Sie Express mit NodeJS verwendet haben, ist eine statische Route so einfach:
app.use('/scripts', express.static(__dirname + '/node_modules/bootstrap/dist/'));
Dann werden alle Browseranfragen von /scripts/xxx.js
automatisch aus Ihrem dist
Verzeichnis unter abgerufen __dirname + /node_modules/bootstrap/dist/xxx.js
.
Hinweis: Neuere Versionen von NPM stellen mehr Dinge auf die oberste Ebene, nicht so tief verschachtelt. Wenn Sie also eine neuere Version von NPM verwenden, unterscheiden sich die Pfadnamen von den Angaben in der Frage des OP und in der aktuellen Antwort. Das Konzept ist jedoch immer noch dasselbe. Sie finden heraus , wo die Dateien physisch auf dem Server - Laufwerk befinden, und Sie machen eine app.use()
mit express.static()
einem pseudo-Pfad zu diesen Dateien zu machen , damit Sie nicht die tatsächliche Server - Dateisystem - Organisation an den Kunden auszusetzen sind.
Wenn Sie keine statische Route wie diese erstellen möchten, ist es wahrscheinlich besser, die öffentlichen Skripte einfach in einen Pfad zu kopieren, den Ihr Webserver als /scripts
oder welche Top-Level-Bezeichnung Sie verwenden möchten. Normalerweise können Sie dieses Kopieren zu einem Teil Ihres Erstellungs- / Bereitstellungsprozesses machen.
Wenn Sie nur eine bestimmte Datei in einem Verzeichnis veröffentlichen möchten und nicht alles, was in diesem Verzeichnis enthalten ist, können Sie manuell einzelne Routen für jede Datei erstellen, anstatt Folgendes zu verwenden express.static()
:
<script src="/bootstrap.min.js"></script>
Und der Code, um eine Route dafür zu erstellen
app.get('/bootstrap.min.js', function(req, res) {
res.sendFile(__dirname + '/node_modules/bootstrap/dist/bootstrap.min.js');
});
Wenn Sie dennoch Routen für Skripte mit abgrenzen möchten /scripts
, können Sie Folgendes tun:
<script src="/scripts/bootstrap.min.js"></script>
Und der Code, um eine Route dafür zu erstellen
app.get('/scripts/bootstrap.min.js', function(req, res) {
res.sendFile(__dirname + '/node_modules/bootstrap/dist/bootstrap.min.js');
});