2013-08-29 51 views
0

我有以下html页面,它引用了我的通用头文件的包含文件。但是,并不是将head.html的内容插入head元素,而是将其添加到body元素中。#include文件插入正文无头

我没有脚本错误。这发生在FF,Chrome或IE中。我曾尝试从head.html中移除除单个跟踪外的所有内容,但它仍包含在正文中。难道还有另外一个干扰头部渲染的框架,我认为它只是简单地获取包含文件并将其转储到它所引用的位置,所以这种情况对我来说似乎很奇怪。

tia。


<!DOCTYPE html> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head> 
<!--#include file="includes/head.html" --> 

{ rest of non-generic head content } 

</head> 

    <body class="animated fadeIn" style="" id="users"> .............. 
+0

您正在使用[服务器端包含](http://en.wikipedia.org/wiki/Server_Side_Includes),顾名思义,它是一种与浏览器无关的服务器端技术。我不知道你的web服务器是什么(或者即使你有),但第一个调试步骤是按Ctrl + U来查看服务器生成的HTML。 –

+0

我在我自己的网站上做了一个快速测试,你的例子在这里工作得很好。所以肯定还有其他的东西出了问题,你没有看到。它是文件扩展名为“.shtml”的标准设置,还是您更改服务器设置以允许所有扩展名?另外,head.html的内容是什么? –

+0

是的,这是一个由IIS 7提供的.shtml文件。 head.html的内容主要是样式表,但不管文件的内容如何,​​都会发生此行为(即,如果我将'hello'放入 –

回答

2

嗯,这是纯粹的邪恶的事情。

它发生的包含文件被编码为UTF-8,并打破了正确的SSI行为。 更改文件为ANSI修复它。

+1

我明白,文件中间的UTF-8 ** BOM **会让浏览器感到困惑,但令人难以置信的是它使服务器输出 –

+0

哈哈,“UTF-8 BOMs是邪恶的”的另一个论点,无论如何,但我可以想象,一个BOM,它的名字就像一个ZWNBSP,被认为是非空白的到浏览器,因此它不应该在头部,浏览器结束头部并在插入之前隐式启动主体。 –