Biasanya, Anda tidak ingin mengekspos salah satu jalur internal Anda untuk bagaimana server Anda disusun ke dunia luar. Apa yang Anda dapat adalah membuat /scripts
rute statis di server Anda yang mengambil file dari direktori apa pun yang mereka kebetulan tinggal di. Jadi, jika file Anda di "./node_modules/bootstrap/dist/"
. Kemudian, tag skrip di halaman Anda terlihat seperti ini:
<script src="/scripts/bootstrap.min.js"></script>
Jika Anda menggunakan express dengan nodejs, rute statis semudah ini:
app.use('/scripts', express.static(__dirname + '/node_modules/bootstrap/dist/'));
Kemudian, permintaan browser apa pun dari /scripts/xxx.js
secara otomatis akan diambil dari dist
direktori Anda di __dirname + /node_modules/bootstrap/dist/xxx.js
.
Catatan: Versi NPM yang lebih baru menempatkan lebih banyak hal di level atas, tidak bersarang terlalu dalam sehingga jika Anda menggunakan versi NPM yang lebih baru, maka nama jalur akan berbeda dari yang ditunjukkan dalam pertanyaan OP dan dalam jawaban saat ini. Tapi, konsepnya masih sama. Anda mencari tahu di mana file-file secara fisik terletak di drive server Anda dan Anda membuat app.use()
dengan express.static()
untuk membuat pseudo-path ke file-file itu sehingga Anda tidak mengekspos organisasi sistem file server yang sebenarnya kepada klien.
Jika Anda tidak ingin membuat rute statis seperti ini, maka Anda mungkin lebih baik hanya menyalin skrip publik ke jalur yang diperlakukan oleh server web Anda sebagai /scripts
atau sebutan tingkat atas apa pun yang ingin Anda gunakan. Biasanya, Anda dapat menjadikan salinan ini sebagai bagian dari proses build / deployment Anda.
Jika Anda ingin membuat hanya satu file tertentu publik dalam direktori dan tidak semua yang ditemukan dalam direktori itu, maka Anda dapat secara manual membuat rute individual untuk setiap file daripada menggunakan express.static()
seperti:
<script src="/bootstrap.min.js"></script>
Dan kode untuk membuat rute untuk itu
app.get('/bootstrap.min.js', function(req, res) {
res.sendFile(__dirname + '/node_modules/bootstrap/dist/bootstrap.min.js');
});
Atau, jika Anda masih ingin menggambarkan rute untuk skrip /scripts
, Anda dapat melakukan ini:
<script src="/scripts/bootstrap.min.js"></script>
Dan kode untuk membuat rute untuk itu
app.get('/scripts/bootstrap.min.js', function(req, res) {
res.sendFile(__dirname + '/node_modules/bootstrap/dist/bootstrap.min.js');
});