node.js + jade - link是自闭的,不应该有内容

时间:2013-12-28 18:30:04

标签: javascript node.js pug

我在MEAN堆栈上引用了以下很棒的教程。

现在我面临一个模板(JADE)相关问题,我无法解决:( 如果可能的话,你能看看并帮助我。

http://www.ibm.com/developerworks/library/wa-nodejs-polling-app/

    doctype 5
    html(lang='en')
      head
        meta(charset='utf-8')
        meta(name='viewport', content='width=device-width, 
initial-scale=1, user-scalable=no')
        title= title
        link(rel='stylesheet', href='//netdna.bootstrapcdn.com/bootstrap/3.0.1/
css/bootstrap.min.css')
        link(rel='stylesheet', href='/stylesheets/style.css')                
      body
        nav.navbar.navbar-inverse.navbar-fixed-top(role='navigation')
          div.navbar-header
            a.navbar-brand(href='#/polls')= title
        div.container
          div

我得到了这个例外。尝试了一些变种但尚未解决它。

Error: C:\DevEnv\UT3_Node\HelloWorldNodeProject\views\index.jade:14
    12|         a.navbar-brand(href='#/polls')= title
    13|     div.container
  > 14|       div

**link is self closing and should not have content.**

谢谢你。

3 个答案:

答案 0 :(得分:8)

你的问题就在这一行:

link(rel='stylesheet', href='/stylesheets/style.css')                

你在StackOverflow上看不到它,但你在标签后面有一堆空格。

此处显示的空格替换为_

link(rel='stylesheet', href='/stylesheets/style.css')________________

所以你的Jade会产生类似的东西:

<link rel="stylesheet" href="/stylesheets/style.css">________________</link>

是不允许的,因为<link>元素不允许有子节点。

答案 1 :(得分:1)

a.navbar-brand(href='#/polls')= title 

删除title

之前的空格
a.navbar-brand(href='#/polls')=title 

答案 2 :(得分:0)

我对Practical Node.js文本中的一个示例遇到了同样的问题。根本原因是我的错误 - 在链接定义中使用双引号而不是单引号。挑战是消息(链接是自闭的,不应该有内容。)出现在div声明中,因此非常令人困惑。事实证明,错误发生在我的包含文件中而不是玉指示的位置。行号是正确的,但它显示错误的文件内容。一旦我弄明白了,修复很简单。
似乎是JADE编译器中的错误。