当页面采用UTF-8编码时,如何消除服务器端周围的空白?

时间:2011-08-25 20:48:45

标签: html iis whitespace ssi

我有一个通过IIS 7.5运行的站点,其页面以UTF-8编码(请注意,如果我恢复为ASCII,则没有以下问题)。我有一个Main.html页面,其中包含页眉和页脚内容。当通过SSI包含这些文件时,空格会被注入正文并强制我的页面内容被删除。如果我将文件组合在一起,这个问题就会消失。 This question is the same as mine,但答案对我不起作用。

考虑以下4页:

SSI.html:

<!DOCTYPE html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <title>Humble Site</title>
    <!--#include file="SSIIncludes.html" -->
    </head>
<body>
    <form id="Form1" runat="server" onsubmit="return false;">

    <!--#include file="SSIHeader.html" -->

                    <div>Here's my content</div>


<script type="text/javascript">

    //do some work

</script>

<!--#include file="SSIFooter.html" -->

    </form>
</body>
</html>

SSIIncludes.html:

<link rel="stylesheet" type="text/css" href="js/jquery.ui.all.css" />
<script type="text/javascript">
    var debug = false;

    if (debug) {
        document.write('<script type="text/javascript" src="js/thirdparty/jquery/core/jquery-1.6.1.js"><\/script>');
        document.write('<script type="text/javascript" src="js/thirdparty/jquery/core/jquery-ui-1.8.12/ui/jquery-ui.js"><\/script>');
    } else {
        document.write('<script type="text/javascript" src="js/thirdparty/jquery/core/jquery-1.6.1.min.js"><\/script>');
        document.write('<script type="text/javascript" src="js/thirdparty/jquery/core/jquery-ui-1.8.12/ui/minified/jquery-ui.min.js"><\/script>');
    }

</script>

SSIHeader.html:

<div>    
    <div>
        <div>
            Something's in a Header!
        </div>

SSIFooter.html:

<div>
            Have a Footer!
        </div>
    </div>
</div>

<br />
<br />
<br />

当我查看页面时,在我的第一个div文本之前,我看到一大块空格(在浏览器中呈现)。浏览浏览器中的源代码显示:

<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
        <title>Humble Site</title>
    </head>
    <body>
    ""
    <link rel="stylesheet" type="text/css" href="js/jquery.ui.all.css">
<script type="text/javascript">
    var debug = false;

    if (debug) {
        document.write('<script type="text/javascript" src="js/thirdparty/jquery/core/jquery-1.6.1.js"><\/script>');
        document.write('<script type="text/javascript" src="js/thirdparty/jquery/core/jquery-ui-1.8.12/ui/jquery-ui.js"><\/script>');
    } else {
        document.write('<script type="text/javascript" src="js/thirdparty/jquery/core/jquery-1.6.1.min.js"><\/script>');
        document.write('<script type="text/javascript" src="js/thirdparty/jquery/core/jquery-ui-1.8.12/ui/minified/jquery-ui.min.js"><\/script>');
    }

</script>
<script type="text/javascript" src="js/thirdparty/jquery/core/jquery-1.6.1.min.js"></script>
<script type="text/javascript" src="js/thirdparty/jquery/core/jquery-ui-1.8.12/ui/minified/jquery-ui.min.js"></script>


    <form id="Form1" runat="server" onsubmit="return false;">
    "

        "
    <div class="OwnerOfAllPlaces">    
    <div id="OuterPlace" class="OuterPlace">
        <div>
            Something's in a Header!
        </div>

                    <div>Here's my content</div>


<script type="text/javascript">

    //do some work

</script>
"
        "
        <div>
            Have a Footer!
        </div>
    </div>
</div>

<br>
<br>
<br>        

    </form>


</body></html>

如何在我的包含点摆脱这些“”“块”?

1 个答案:

答案 0 :(得分:3)

可能文件保存为UTF-8 + BOM。

BOM =字节顺序标记

BOM基本上只是在文档开头添加的三个(不可见)字符。 (至少在UTF-8中)

您不希望它出现在您的文档中。

某些文本编辑器为您提供了将文件保存为UTF-8而无需BOM的选项。

我使用EditPlus,但其他也可能有用。