上門一對一計算機家教
當前位置: 首頁 > Web前端家教 >

dedecms調用頭部文件 dede:include時頁面出現一行空白的解決方案

點擊: 時間:2017-02-20 來源:北京家教網
最近制作模板的時候發現一些問題,當我在調用 {dede:include filename=header.htm/} (網頁頭部),或者 {dede:include filename=footer.htm/}(網頁底部)標簽時, 在生成的頁面中,會出現一行空白,破壞了整個頁面的布局,即使如何修改CSS

最近制作模板的時候發現一些問題,當我在調用

{dede:include filename="header.htm"/} (網頁頭部),或者

{dede:include filename="footer.htm"/}(網頁底部)標簽時,

在生成的頁面中,會出現一行空白,破壞了整個頁面的布局,即使如何修改CSS也沒有用,經過查找原因之后才發現問題的所在。原來我每次新建一個模版htm文件時,喜歡新建一個記事本文件,再將其后綴名改成htm,然后用編輯器打開,另外我的編碼是UTF-8,所以問題出現了。因為在WINDOWS下的記事本中,默認是gb編碼,在轉碼為以UTF-8編碼時,會在文件最前面插入三個不可見的字符(_0xEF _0xBB _0xBF,即BOM——Byte Order Mark)。它是一串隱藏的字符,用于讓記事本等編輯器識別這個文件是否以UTF-8編碼。由于在PHP中沒有考慮BOM的問題,不會忽略UTF-8編碼的文件開頭BOM的那三個字符,所以把它作為正文的一部分,將會造成在頁面上輸出這三個字符。顯示效果一般是一個空行 或是一個亂碼。由于在html一開頭有這3個字符的存在,即使頁面的 top padding 設置為0,也無法讓整個網頁緊貼瀏覽器頂部。

用記事本編輯代碼,可能會出現的另外一個問題是:不能登入或者不能登出;

由于受COOKIE送出機制的限制,在這些文件開頭已經有BOM的文件中,COOKIE無法送出(因為在 COOKIE送出前PHP已經送出了文件頭),所以登入和登出功能失效。一切依賴COOKIE、SESSION實現的功能全部無效。

解決辦法:

在Notepad++編輯器中,將文件轉為UTF-8無BOM編碼格式

或者在在Dreamweaver中點修改->頁面屬性->標題/編碼->把包括 Unicode 簽名(BOM)的勾取消。

------分隔線----------------------------
30选5开奖查询