Мне понадобится это в одном из моих проектов в ближайшее время, поэтому мне было любопытно попробовать.По сути, возникает проблема, если вы пытаетесь сделать это в одном файле:
!!! 5
if useManifest
html(lang="en", manifest="cache.manifest")
else
html(lang="en")
head
title sample title
body
p some content...
Это приводит к неправильному отображению HTML.Тем не менее, кажется, что следующее работает просто отлично (это определенно обходной путь):
В routes\index.js
:
exports.index = function(req, res){
res.render('testJade', { layout: false, useManifest: true })
};
В views\testJadeInclude.jade
:
!!!5
if useManifest
html(lang="en", manifest="cache.manifest")
block content
else
html(lang="en")
block content
И, наконец, в views\testJade.jade
:
include testJadeInclude
block append content
head
title sample title
body
p some content
Затем, основываясь на том, что вы пожелаете (например, если клиент является мобильным браузером или чем-то еще), вы устанавливаете useManifest в true или false.1019 * И я только что проверил другую возможность, вроде как наоборот.Вместо того, чтобы включать тег doctype и html в файл содержимого (через добавление блока), вы включаете файл содержимого в файл doctype-html, поэтому он выглядит следующим образом:
!!! 5
if useManifest
html(lang="en", manifest="cache.manifest")
include contentFile
else
html(lang="en")
include contentFile