2016-11-02 7 views
0

Когда некоторые маршруты я нормально это сделать, как это я настройка:Express.js Route orgainisation

app.get('/x', function(req, res) { 
res.sendFile(path.join(__dirname + '/public/.../index.html'));}); 

Проблема с этим, если у вас есть JS или CSS в папках маршрута вы не можете разместить их.

Так часто я просто добавил

app.get('/public/.../js/index.js', function(req, res) {res.sendFile (__dirname + '/public/.../js/index.js');}); 
app.get('/public/.../css/style.css', function(req, res) {res.sendFile (__dirname + '/public/.../css/style.css');}); 

чуть ниже пути, чтобы сделать JS и CSS доступны.

я уже у себя библиотеку с экспрессом статического

app.use('/lib', express.static('lib')); 

Но это не возможно для JS и CSS в маршруте папки (/public/.../js)

  • ли Там лучший способ организовать мои файлы, находящиеся в папках маршрутов?
+0

Вы должны быть в состоянии получить доступ к урам JS в этой папке/lib .. обычно помещает весь клиент (скрипты, стили, изображения) в одну папку в вашем случае lib .. и вы можете разместить его с помощью express.static –

+0

Если вы поместите все статические файлы в один или несколько каталоги сами по себе, то вы можете легко сделать маршруты для всех с помощью операторов 'express.static()'. И затем настройте пути в ваших HTML-файлах, которые указывают на эти статические ресурсы, чтобы соответствовать тем маршрутам, которые вы создали. – jfriend00

+0

Я думал об этом беворе, но решил не делать этого, потому что тогда у вас будет все в 10 папках, и тогда у меня будет такая же проблема, что это не будет организовано, но на этот раз не в коде, но в Файловой системе. Но я не могу найти другое решение, так что это мой единственный вариант. Посмотрим, появится ли у кого-нибудь решение. –

ответ

1

Вы можете использовать виртуальный путь, сохраняя текущую структуру каталогов, добавив следующий маршрут вы можете сослаться на все ваши статические файлы с/статическим префиксом из-под ./public подкаталога:

app.use('/static', express.static('public')) 

Э.Г. вы могли бы сослаться на http://your_server/static/public/.../js/index.js. Обратите внимание, что в этом случае все файлы под/public могут быть доступны через префикс/static, поэтому у вас не должно быть кода сервера или конфигурации сервера.

В идеале для ясности следует провести и передавать все ваши статические файлы из одной корневой папки с подкаталогами типа (например,/статическим/JS,/статический/CSS):

app.use('/static', express.static('static'))