Jade将空的`style`元素添加到`head`

时间:2012-06-06 01:50:52

标签: node.js google-chrome template-engine pug

我正在使用Jade作为我的Express powered node.js应用程序的模板引擎。也许是深夜,但我无法弄清楚在结果HTML中插入空style元素的位置。

实例:http://quotation-mark.herokuapp.com/(注意<style type="text/css"></style>末尾的head?)

<小时/> Express'模板设置:

app.set('views', settings.projectDir + '/views');
app.set('view engine', 'jade');
app.set('view options', {layout: false});

<小时/> layout.jade

!!!html

include /helpers/css.jade

html(lang='ru')
  head
    meta(http-equiv='content-type', content='text/html; charset=utf-8')
    noscript
      meta(http-equiv="refresh", content="0; url=/noscript")

    title= title

    block css
      mixin css('/css/bootstrap/bootstrap.css')


  body
    block content

<小时/> index.jade

extends layout

append content
  h1= title
  p Добро пожаловать в #{title}.

<小时/> 我已经检查了几次,但一切似乎都没问题(代码,模板,验证器)。不是线索......这应该发生吗?我错了吗?

即使模板本身没有head,浏览器中也有一个(Chrome 19.0.1084.53),也许浏览器会添加一些东西?简单的HTML页面没有它:

<!DOCTYPE html>

<html>

<head>
<title>Test</title>
<style>h1{color:red;}</style>
</head>

<body>
<h1>Hi!</h1>
</body>

</html>

1 个答案:

答案 0 :(得分:10)

您的服务器生成的HTML实际上并没有空<style>块。

<!DOCTYPE html><html lang="ru">
<head>
 <meta http-equiv="content-type" content="text/html; charset=utf-8">
 <noscript><meta http-equiv="refresh" content="0; url=/noscript"></noscript>
 <title>«Кавычки»</title>
 <link rel="stylesheet" href="/css/style.css">
</head>
<body>
  <h1>«Кавычки»</h1><p>Добро пожаловать в «Кавычки».</p>
</body>
</html>

您使用的是AdBlock等任何浏览器扩展程序吗?当AdBlock打开时,我在我访问的每个页面中看到空样式块。禁用扩展程序会使其消失。