Внешний Javascript в HTML отправляется на сервер неправильно

0

Я запускаю сервер Node.js вместе с интерфейсом Angular. Одна из зависимостей Angular, которые я использую, требует, чтобы я импортировал javascript файл на мою страницу html под именем swing.js. Однако, когда я пытаюсь это сделать, он отправляет требуемый файл в качестве HTTP-запроса на сервер, в результате чего запросы выглядят следующим образом:

Http://Localhost: 3000/главная /Me/приложение /node_modules/угловой распашные/расстояние /swing.js

Очевидно, что это выглядит как 404. В качестве альтернативы я попытался изменить

<script src="/home/me/app/node_modules/angular-swing/dist/swing.js"></script>

в

<script src="swing.js"></script>

а затем на стороне сервера, делая:

app.get('swing.js', function(req, res){
    res.sendFile('home/me/app/node_modules/angular-swing/dist/swing.js');
});

Это работает немного больше, но тогда файл работает неправильно, поскольку я предполагаю, что он больше не находится в среде npm, в которой он должен быть. Я пробовал несколько итераций изменения

<script src="/home/me/app/node_modules/angular-swing/dist/swing.js"></script>

в то, что использует периоды (.) для представления более относительных путей, но это тоже не работает. В целом, я очень застрял и буду признателен за любую проницательность. Если он используется, я также использую:

app.use(express.static(__dirname+'/public'));

  • 0
    node.js не обслуживает никаких файлов по умолчанию, поэтому любые файлы сценариев, которые вам нужно отправить с вашего сервера клиенту по запросу, требуют явного маршрута для их обработки или им нужен какой-то общий маршрут, который знает, как обрабатывать все запрошенные файлы сценариев. swing.js в клиенте не является частью какой-либо «среды NPM». В этот момент он запускает браузер, а не в любой среде NPM. Возможно, что для самого swing.js нужны другие скрипты или ресурсы, которым также нужны маршруты, и поэтому он не работает после того, как вы сделали для него явный маршрут.
  • 0
    Вы также можете прочитать это: Как включить скрипты, расположенные в папке node_modules? ,
Показать ещё 1 комментарий

1 ответ

0
Лучший ответ

Внесение комментариев в ответ...

node.js по умолчанию не обслуживает файлы, поэтому любые файлы сценариев, которые вам нужно отправить с вашего сервера клиенту по запросу, должны иметь явный маршрут для их обработки или им нужен общий маршрут, который знает, как обрабатывать все запрошенные файлы сценариев.

swing.js в клиенте не является частью какой-либо "среды NPM". Он запускает браузер в этот момент, а не в какой-либо среде НПМ. Возможно, что swing.js сам нуждается в некоторых других сценариях или ресурсах, которые также нуждаются в маршрутах, и почему он не работает после того, как вы сделаете для него явный маршрут. Вероятно, вы можете проверить конкретные ошибки в консоли, чтобы дать вам понять, почему он не работает.

Вы также можете прочитать следующее: Как включить скрипты, находящиеся внутри папки node_modules?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню