Подтвердить что ты не робот

Связывание с другими нефритовыми файлами

Я пытаюсь понять, как работает Экспресс и Джейд.

Прежде всего, я делаю это правильно, когда я использую 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...
4b9b3361

Ответ 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 или теги стилей, которые должны быть на каждой странице.