2013-08-29 90 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,被認爲是非空白的到瀏覽器,因此它不應該在頭部,瀏覽器結束頭部並在插入之前隱式啓動主體。 –