3

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

现场示例: 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});


布局.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


索引.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>
4

1 回答 1

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 后,我在访问的每个页面中都会看到那个空的样式块。禁用扩展程序使其消失。

于 2012-06-06T02:59:25.730 回答