Jade-lang添加清单文件

时间:2012-01-30 22:13:34

标签: node.js pug manifest.cache

我想知道如何使用jade-lang和express将清单文件添加到node.js站点。我发现这是github中的issue 239。我的问题是如何在没有等待解决问题的情况下将一些数据添加到缓冲区中。

感谢的!

2 个答案:

答案 0 :(得分:2)

在玉器中有一种简单的方法: 试试这个

html(manifest=_condition_ ? "cache.manifest" : undefined)

此代码检查 condition 是否为true。如果是,则manifest设置为“cache.manifest”。否则,它将被设置为undefined并丢弃。

答案 1 :(得分:0)

我很快就会在我的一个项目中需要这个,所以我很想尝试一下。如果您尝试在单个文件中执行此操作,则实际上存在问题:

!!! 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。

我刚刚测试了另一种可能性,这是另一种方式。您可以在doctype-html文件中包含内容文件,而不是在内容文件中包含doctype和html标记(通过块附加),所以它看起来像这样:

!!! 5
if useManifest
    html(lang="en", manifest="cache.manifest")
        include contentFile
else
    html(lang="en")
        include contentFile