Связывание с другими нефритовыми файлами
Я пытаюсь понять, как работает Экспресс и Джейд.
Прежде всего, я делаю это правильно, когда я использую layout.jade в качестве файла шаблона (заголовок, тело, нижний колонтитул) и используя разные файлы для отображения информации в теле (см. примеры ниже)?
Код работает нормально, но я не уверен, что это правильный способ делать вещи в Express. Если мне следует продолжать эту структуру, как я могу связать себя с другими файлами (например,.About.jade) изнутри, например, index.jade, чтобы показать этот файл вместо index.jade?
Спасибо заранее!
layout.jade:
!!! 5
html
head
title= title
link(rel='stylesheet', href='/stylesheets/style.css')
script(type='text/javascript', src='https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js')
script(type='text/javascript', src='http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js')
script(type='text/javascript', src='/javascripts/external.js')
// Header
header#header
// Navigation
nav#nav
// Navigation code (ul, li etc)...
// Sidebar
aside#sidebar
// Sidebar code...
// Body
body!= body
index.jade:
!!! 5
html
head
title= title
section#wrapper
img.imageStyle(src = '/images/test1.png')
// And so on...
About.jade:
// You get it...
Ответы
Ответ 1
Я думаю, что вы ищете маршруты рендеринга рендеринга:
http://expressjs.com/en/guide/using-template-engines.html
Итак, вы можете настроить что-то вроде этого:
app.get('/', function(req, res){
res.render('index.jade', { title: 'index' });
});
app.get('/about', function(req, res){
res.render('about.jade', { title: 'about' });
});
Чтобы связать друг с другом, как только у вас настроены правильные маршруты, вы можете просто сделать что-то вроде:
a(href='/') index
a(href='/about') about
Обновить Кроме того, вам не нужно повторять это снова в индексе.
!!! 5
html
head
title= title
Ответ 2
дополнительно к тому, что написал Wes Freeman, вы также можете включить другие нефритовые шаблоны в ваш нефритовый файл.
таким образом вы могли бы использовать свой header.jade, footer.jade и включить их в свой файл about.jade. здесь включена документация из нефрита:
https://github.com/visionmedia/jade#a13
таким образом вам нужно только изменить файл header.jade, если вы добавите, например, теги script или теги стилей, которые должны быть на каждой странице.