Expressjs Добавление: id param в URL нарушило статическое содержимое

#node.js #express

#node.js #экспресс

Вопрос:

Я возвращаю одинаковый вид как для /new, так и для edit/:id

однако при визуализации стили и файлы js не найдены для edit/:id

Почему это происходит для Expressjs. Предполагается, что он всегда должен быть относительно общей папки, не так ли?

Маршруты:

 router.get('/new', function(req, res, next) {
    res.render('index', { title: 'New', id: 0 });
});

router.get('/edit/:id', function(req, res, next) {
  res.render('index', { title: 'Edit', id: req.params.id });
});
  

В представлении у меня есть такие стили

 <script src="javascripts/jquery-3.1.0.min.js"></script>
<link href="bootstrap-3.3.7/css/bootstrap.min.css" rel="stylesheet">
  

Все содержимое находится внутри общедоступной папки

Ответ №1:

Вам нужны абсолютные URL-адреса для ваших скриптов и ссылок (начинайте с косой черты).

 <script src="/javascripts/jquery-3.1.0.min.js"></script>
<link href="/bootstrap-3.3.7/css/bootstrap.min.css" rel="stylesheet">
  

Ваш браузер видит относительный путь, поэтому он запрашивает содержимое по адресу

edit/javascript/jquery-3.1.0.min.js которого не существует.

Комментарии:

1. Замечательно — Большое спасибо!

2. Я буду, но stack-overflow попросил меня подождать 10 минут, прежде чем принимать ответ