Зазвичай, ви не хочете розкривати будь-який свій внутрішній шлях про те, як ваш сервер структурований до зовнішнього світу. Що ви можете зробити, це зробити /scripts
статичний маршрут на вашому сервері, який витягує його файли з будь-якого каталогу, в якому вони трапляються. Отже, якщо ваші файли є "./node_modules/bootstrap/dist/"
. Тоді тег сценарію на ваших сторінках виглядає приблизно так:
<script src="/scripts/bootstrap.min.js"></script>
Якщо ви використовували Express з nodejs, статичний маршрут такий же простий, як і цей:
app.use('/scripts', express.static(__dirname + '/node_modules/bootstrap/dist/'));
Тоді будь-які запити веб-переглядача від /scripts/xxx.js
автоматично надходитимуться з вашого dist
каталогу за адресою __dirname + /node_modules/bootstrap/dist/xxx.js
.
Примітка: новіші версії NPM ставлять більше речей на найвищий рівень, не вкладені настільки глибоко, тому якщо ви використовуєте більш нову версію NPM, то імена шляхів будуть іншими, ніж зазначено у запитанні ОП та в поточній відповіді. Але, концепція все одно та сама. Ви дізнаєтесь, де файли знаходяться фізично на вашому серверному накопичувачі, і ви зробите 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');
});