UTF-8 BOM编码格式文件对SSI的影响

时间:2023-01-05 14:40:06

  最近在用SSI(Server Side Includes)加载子模块的时候发现一个奇怪的现象,加载完成后的网页老是CSS有问题,被加载模块渲染后老是有空白部分。下面给出简单的示例。

  文件a.html的内容如下:

 1 <!DOCTYPE html>
 2 <html>
 3     <head>
 4         <style>
 5  *{
 6  margin: 0;
 7  padding: 0;
 8             }
 9  #ah{
10  border: solid 2px red;
11             }
12  #bh{
13  border: solid 2px black;
14             }
15         </style>
16     </head>
17     <body>
18         <h1 id="ah">AH</h1>
19         <!--#include file="b.html"-->
20     </body>
21 </html>

被包含的文件b.html内容如下:

 1 <h1 id="bh">BH</h1> 

最后在IIS上发布,得到的结果如下图:

UTF-8 BOM编码格式文件对SSI的影响

  AH和BH中间有空白行,百思不得其解,甚至开始怀疑自己的CSS水平,更甚开始怀疑自己的人生。。。

  最后用Notepad++打开,看了下编码,震惊了:

UTF-8 BOM编码格式文件对SSI的影响

  瞬间领悟了,把其保存为无BOM的UTF-8格式,再次访问页面的效果如下:

UTF-8 BOM编码格式文件对SSI的影响

  终于显示正常了,万恶的BOM(Byte Order Mark),万恶的记事本,还在用记事本写程序的高手们,换个文本编辑器吧:)

 

UTF-8 BOM编码格式文件对SSI的影响