Как установить папку с несколькими представлениями в Express.js приложение

#node.js #express

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

Вопрос:

Когда у меня указана одна папка views, она будет обслуживать файлы, но когда я указываю вторую рядом, она не работает. Я пробовал много чего, но безрезультатно. Вот мой код:

app.use(express.static('views'));

//app.set('views', [__dirname '/views', __dirname '/views/views2']);

app.use("/views", express.static(__dirname "/views"));

app.use("/views2", express.static(__dirname "/views2"));

App.set вообще не работает, поэтому я прокомментировал это здесь, и последние две строки тоже не работают.

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

1. Непонятно, что вы пытаетесь сделать. views Папки обычно используются в качестве места по умолчанию для поиска шаблонов, которые не похожи на то, что вы пытаетесь сделать. Итак, пожалуйста, опишите точно, что вы хотите, чтобы этот код делал. Показывать URL-адреса запросов на ввод и показывать, какой файл вы хотите использовать для этого URL-адреса и где этот файл находится в вашей файловой системе. Затем, если вам нужно более одного местоположения в файловой системе, покажите примеры обоих.

2. В папках у меня есть шаблоны ejs, поэтому я просто пытаюсь получить доступ к нескольким папкам, содержащим мои файлы ejs. Например, моя домашняя страница получает свои файлы ejs (template) и css из папки «views», но я хочу знать, как у меня может быть несколько папок (каталогов), которые могут обслуживать эти файлы. Это строка кода, которая предоставляет моему приложению доступ к моим представлениям, но каждый раз, когда я пытаюсь добавить новую строку с другим именем каталога, приложение не может ее найти app.use(express.static('views'));

3. Well express.static() не имеет никакого отношения к вызовам res.render() для отображения шаблона. Вы передаете res.render() имя файла, которое является либо абсолютным путем, либо относительным к заданному вами каталогу app.set('views', someDir) . Насколько я знаю, система шаблонов не имеет возможности просматривать несколько мест. Вы можете установить родительский каталог для app.set('views', someDir) , а затем использовать res.render('views1/someView.ejs') и res.render('views2/someOtherView.ejs') для доступа к другому каталогу. Или вы можете создать полные пути для передачи res.render() .

4. express.static() предназначен для автоматического отображения статических HTML-файлов (не шаблонов).

5. хммм, ну, это работает при обслуживании моих файлов EJS, которые фактически являются HTML.