2015-07-06 1 views
0

Я работаю над веб-приложением с nodejs + jade.скрипт src становится URL-адресом в jade с nodejs + express

Я хочу включить файл js в мою страницу нефрита. Но это не работает, поскольку я думал, что это должно сделать.

I включает в себя три Js файлы:

script(src='//cdn.bootcss.com/jquery/1.11.3/jquery.min.js') 
script(src='//cdn.bootcss.com/bootstrap/3.3.5/js/bootstrap.min.js') 
script(src="async.js") 

В первые две работы скважины (бутстраповские файлы). Но браузер будет требовать на третьем «GET http://127.0.0.1:3000/sample/auth/async.js 404 (Not Found)». Кажется, что какая-то вещь меняет src на url с базовым url «http://127.0.0.1:3000/sample/auth/»

«127.0.0.1» - это локальный хост, а порт «3000» - это порт сервер прослушивает, а «http://127.0.0.1:3000/sample» - это вход в мое веб-приложение.

Так что я думаю, что в проекте есть конфигурация, чтобы заставить src быть таким же url. И я не знаю, как включить локальные файлы js. Может ли кто-нибудь помочь? Благодаря!

+0

Последний сценарий тег будет включать в себя сценарий относительно URL страницы он ссылается. Где находится скрипт 'async.js'? –

+0

Я помещаю async.js в тот же каталог, что и файл веб-страницы (shuffler.jade), который находится (views/pages/async.js). И как я могу включить локальный файл? Благодаря! – shenhualong

ответ

1

Вы должны положить async.js в /public/scripts в ваше экспресс-приложение. Вам, вероятно, потребуется создать этот каталог, но вы увидите, что локальные файлы CSS вашего приложения расположены там в /public/stylesheets.

Как только вы сделаете это, напишите свой async.js файл, подобный этому script(src='/scripts/async.js').

Это предпочтительный метод для обслуживания локальных CSS и JavaScript. Вы можете видеть в app.js, что Express выглядит там для любых статических ресурсов.

app.use(express.static(path.join(__dirname, 'public')));

+0

Он работает! Спасибо! – shenhualong