0

我似乎有一个剃刀模板强制浏览器进入怪癖模式的模糊问题。它是 umbraco 5 中的一个简单的 razor 模板。以下代码使 chrome、firefox、IE 都进入 quirks 模式:

@inherits RenderViewPage
@using System.Web.Mvc.Html;
@using Umbraco.Cms.Web;
@{
    Layout = "";
}
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html> 
<head>
  <meta charset="utf-8" />
  <title>Page title</title>
</head>
<body>



</body>
</html>

如果我完全移动剃刀语法或将其向下移动,那么它不会在文档类型之前进入标准合规模式。我尝试添加各种 X-UA-Compatible 元标记无效。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html> 
<head>
  <meta charset="utf-8" />
  <title>Page title</title>
</head>
<body>

@inherits RenderViewPage
@using System.Web.Mvc.Html;
@using Umbraco.Cms.Web;
@{
    Layout = "";
}

</body>
</html>

任何人有任何想法可能是什么原因?就好像浏览器认为它在 doctype 之前渲染了一些东西,但我什么也看不到。

谢谢

4

3 回答 3

1

您的语句不需要分号@using,也许这就是浏览器所看到的?

所以例如

@using Umbraco.Cms.Web;

只能是

@using Umbraco.Cms.Web
于 2012-04-14T07:35:38.313 回答
1

同样在这里看起来它在打开doctype的标签<之前放置了额外的字符(空格)。我认为这是一个编辑器错误。

尝试删除开头的“<”并将其插入并在此之后保存。doctype 也应该是文件的第一行。

于 2012-05-21T14:51:57.160 回答
0

@ 语句被转换为空格。doctype 应该是文档的第一行。在这种情况下,第一行是空白的,所以 doctype 被定义为一个空行,这会触发 quirksmode

于 2012-08-26T13:42:30.987 回答