Di solito, non vuoi esporre nessuno dei tuoi percorsi interni per come il tuo server è strutturato al mondo esterno. Quello che puoi è fare una /scripts
rotta statica nel tuo server che recupera i suoi file da qualunque directory si trovino. Quindi, se i tuoi file sono "./node_modules/bootstrap/dist/"
. Quindi, il tag di script nelle tue pagine assomiglia a questo:
<script src="/scripts/bootstrap.min.js"></script>
Se si utilizzava express con nodejs, una route statica è semplice come questa:
app.use('/scripts', express.static(__dirname + '/node_modules/bootstrap/dist/'));
Quindi, tutte le richieste del browser /scripts/xxx.js
verranno automaticamente recuperate dalla dist
directory in __dirname + /node_modules/bootstrap/dist/xxx.js
.
Nota: le versioni più recenti di NPM mettono più cose al primo livello, non nidificate così in profondità, quindi se si utilizza una versione più recente di NPM, i nomi dei percorsi saranno diversi da quelli indicati nella domanda del PO e nella risposta corrente. Ma il concetto è sempre lo stesso. È scoprire dove i file sono situati fisicamente sul disco del server e si fa uno app.use()
con express.static()
per fare una pseudo-percorso per i file in modo che non sta esponendo l'organizzazione del sistema di file server reale al client.
Se non vuoi fare un percorso statico come questo, probabilmente stai meglio semplicemente copiando gli script pubblici in un percorso che il tuo server web considera come /scripts
o qualunque designazione di livello superiore che desideri utilizzare. Di solito, è possibile rendere questa copia parte del processo di compilazione / distribuzione.
Se si desidera rendere pubblico solo un determinato file in una directory e non tutto ciò che si trova in quella directory con esso, è possibile creare manualmente percorsi individuali per ciascun file anziché utilizzare express.static()
come:
<script src="/bootstrap.min.js"></script>
E il codice per creare un percorso per quello
app.get('/bootstrap.min.js', function(req, res) {
res.sendFile(__dirname + '/node_modules/bootstrap/dist/bootstrap.min.js');
});
Oppure, se si desidera ancora delineare i percorsi per gli script con /scripts
, è possibile effettuare questa operazione:
<script src="/scripts/bootstrap.min.js"></script>
E il codice per creare un percorso per quello
app.get('/scripts/bootstrap.min.js', function(req, res) {
res.sendFile(__dirname + '/node_modules/bootstrap/dist/bootstrap.min.js');
});