Обычно вы не хотите раскрывать свои внутренние пути для того, как ваш сервер структурирован с внешним миром. Что вы можете сделать, так это создать /scripts
статический маршрут на вашем сервере, который выбирает его файлы из любого каталога, в котором они находятся. Так что, если ваши файлы находятся в "./node_modules/bootstrap/dist/"
. Затем тег script на ваших страницах выглядит так:
<script src="/scripts/bootstrap.min.js"></script>
Если вы использовали экспресс с nodejs, статический маршрут так же прост:
app.use('/scripts', express.static(__dirname + '/node_modules/bootstrap/dist/'));
Затем любые запросы браузера /scripts/xxx.js
автоматически будут получены из вашего dist
каталога по адресу __dirname + /node_modules/bootstrap/dist/xxx.js
.
Примечание: более новые версии NPM помещают больше вещей на верхний уровень, не вкладываясь так глубоко, поэтому, если вы используете более новую версию NPM, имена путей будут отличаться от указанных в вопросе OP и в текущем ответе. Но концепция все та же. Вы узнаете, где файлы физически расположены на диске сервера и вы делаете app.use()
с , express.static()
чтобы сделать псевдо-путь к этим файлам , так что вы не подвергая фактический файл - сервер организации системы к клиенту.
Если вы не хотите создавать статический маршрут, подобный этому, то вам, вероятно, лучше просто скопировать общедоступные сценарии в путь, который обрабатывает ваш веб-сервер, /scripts
или в любое другое обозначение верхнего уровня, которое вы хотите использовать. Обычно вы можете сделать это копированием частью процесса сборки / развертывания.
Если вы хотите сделать только один конкретный файл общедоступным в каталоге, а не все, что находится в этом каталоге, то вы можете вручную создать отдельные маршруты для каждого файла, а не использовать express.static()
такие как:
<script src="/bootstrap.min.js"></script>
И код для создания маршрута для этого
app.get('/bootstrap.min.js', function(req, res) {
res.sendFile(__dirname + '/node_modules/bootstrap/dist/bootstrap.min.js');
});
Или, если вы все еще хотите разграничить маршруты для сценариев /scripts
, вы можете сделать это:
<script src="/scripts/bootstrap.min.js"></script>
И код для создания маршрута для этого
app.get('/scripts/bootstrap.min.js', function(req, res) {
res.sendFile(__dirname + '/node_modules/bootstrap/dist/bootstrap.min.js');
});