node.js иногда возникают проблемы со скриптами ссылок - PullRequest
0 голосов
/ 28 марта 2020

Здравствуйте, я создаю сторону клиента SPA - здесь все работает правильно (с использованием vanilla-router)

Но сервер node.js иногда выдает ошибку при попытке загрузить связанный скрипт

Uncaught SyntaxError: Неожиданный токен '<' </p>

Ошибка появляется только тогда, когда я использую более одного backsla sh в URL (/).

например

localhost: 3000 - все в порядке (скрипт загружен)

localhost: 3000 / test - в порядке

localhost: 3000 / about - все в порядке

localhost: 3000 / test / test - Ошибка

localhost: 3000 / profile / user - Ошибка

Код моего сервера

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

app.get('*', function(req, res){
  res.sendFile(path.resolve(__dirname, 'index.html'));
});

в папке dist У меня есть test. js script

мой код из индекса. html

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

1 Ответ

1 голос
/ 28 марта 2020

При выполнении <script src="test.js" ></script> в вашем веб-интерфейсе он будет пытаться извлечь из «текущей папки», поэтому, если вы находитесь на странице localhost:3000/test/test, он попытается загрузить localhost:3000/test/test.js, что означает, что ваш бэкэнд будет искать dist/test/test.js, который, вероятно, не существует, что приводит к загрузке страницы индекса (с сообщением об ошибке о неожиданном <).

Измените ваш внешний интерфейс на использование:

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

Обратите внимание на добавленный sla sh впереди, что означает, что он будет пытаться загрузить с root, т.е. независимо от того, на какой странице вы находитесь в веб-интерфейсе, он будет загружать localhost:3000/test.js

...