#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.