2016-01-04 2 views
0

Это настолько странно, что мои локальные пути работают. Как, например, вот что моя иерархия выглядит следующим образом:Node.js - Экспресс: странные локальные пути

общественности> CSS> bootstrap.css

общественности> JS> bootstrap.js

шаблоны> макет> page.ejs (шаблон по умолчанию для любая страница)

шаблоны> index.ejs и другие .ejs шаблоны

Так внутри моего page.ejs мой стиль и сценариев ссылки:

<link rel="stylesheet" href="css/bootstrap.css"/> 

<script src="js/jquery.js"></script> 
<script src="js/bootstrap.js"></script> 

И по какой-то причине это работает для моего index.js. Всякий раз, когда я перехожу на веб-сайт, и я проверяю источник, нажимаю на ссылки, все находит и хорошо. Всякий раз, когда это происходит с моим файлом example.ejs - эти ссылки не найдены, так как он вызывается из каталога/players/в источнике.

Так, например, вызов для этих файлов со страницы «/» выглядит следующим образом:

GET /css/bootstrap.css 304 3.155 ms - - 
GET /js/jquery.js 304 3.748 ms - - 
GET /js/bootstrap.js 304 3.714 ms - - 

Но вызов для одного файла из того же шаблона из/игроков/называется так:

GET /players/css/bootstrap.css 404 1.436 ms - 38 
GET /players/js/jquery.js 404 1.197 ms - 33 
GET /players/js/bootstrap.js 404 1.151 ms - 36 

И, очевидно, они с тегом 404, так как они не были найдены. Так что я задал себе вопрос:

Как я могу работать со всеми своими путями?

Я пробовал абсолютные пути к этим файлам - до сих пор не найден. Я пытался подумать о каком-то динамическом скрипте, но я все еще не уверен, как это работает.

По какой-то причине он добавляет свой собственный путь к файлам, а не использует путь к шаблону ... Я даже не знаю, как это объяснить, но я думаю, что вы поняли эту идею. Я думаю, что «общедоступный» каталог привязан к маршрутам, поэтому мне не нужно включать его в файлы, которые запрашиваются с индексной страницы, но как насчет каких-либо других файлов?

Спасибо и извините за хромой вопрос!

ответ

1
<script src="js/jquery.js"></script> 
<script src="js/bootstrap.js"></script> 

Должно быть так:

<script src="/js/jquery.js"></script> 
<script src="/js/bootstrap.js"></script> 

В противном случае браузер будет включать в себя сценарии относительно текущего URL.

+0

Я мог бы поклясться, что я это сделал ... Но так или иначе, глупо меня, спасибо! – Micard

Смежные вопросы