Zwykle nie chcesz ujawniać żadnej z wewnętrznych ścieżek dotyczących struktury serwera na zewnątrz. Możesz zrobić /scripts
statyczną trasę na serwerze, która pobiera pliki z dowolnego katalogu, w którym się znajdują. Więc jeśli twoje pliki się znajdują "./node_modules/bootstrap/dist/"
. Następnie tag skryptu na twoich stronach wygląda następująco:
<script src="/scripts/bootstrap.min.js"></script>
Jeśli korzystasz z express z nodejs, statyczna trasa jest tak prosta:
app.use('/scripts', express.static(__dirname + '/node_modules/bootstrap/dist/'));
Następnie wszelkie żądania przeglądarki /scripts/xxx.js
będą automatycznie pobierane z dist
katalogu na stronie__dirname + /node_modules/bootstrap/dist/xxx.js
.
Uwaga: Nowsze wersje NPM umieszczają więcej rzeczy na najwyższym poziomie, nie zagnieżdżone tak głęboko, więc jeśli używasz nowszej wersji NPM, nazwy ścieżek będą inne niż wskazane w pytaniu PO i aktualnej odpowiedzi. Ale koncepcja jest nadal taka sama. Aby dowiedzieć się, gdzie pliki są fizycznie znajduje się na dysku serwera, a ty zrób app.use()
z express.static()
zrobić pseudo-ścieżkę do tych plików, dzięki czemu nie naraża faktyczną organizację systemu plików serwera do klienta.
Jeśli nie chcesz tworzyć statycznej trasy w ten sposób, prawdopodobnie lepiej jest po prostu skopiować publiczne skrypty na ścieżkę, którą twój serwer internetowy traktuje jako /scripts
dowolne oznaczenie najwyższego poziomu, którego chcesz użyć. Zwykle kopiowanie może stać się częścią procesu kompilacji / wdrażania.
Jeśli chcesz ustawić tylko jeden konkretny plik w katalogu, a nie wszystkie znalezione w nim katalogi, możesz ręcznie utworzyć indywidualne trasy dla każdego pliku, zamiast używać express.static()
takich jak:
<script src="/bootstrap.min.js"></script>
I kod do utworzenia trasy do tego
app.get('/bootstrap.min.js', function(req, res) {
res.sendFile(__dirname + '/node_modules/bootstrap/dist/bootstrap.min.js');
});
Lub, jeśli nadal chcesz wyznaczyć trasy dla skryptów /scripts
, możesz to zrobić:
<script src="/scripts/bootstrap.min.js"></script>
I kod do utworzenia trasy do tego
app.get('/scripts/bootstrap.min.js', function(req, res) {
res.sendFile(__dirname + '/node_modules/bootstrap/dist/bootstrap.min.js');
});