Как устранить пробелы вокруг серверной части Включает ли кодирование страниц в кодировке UTF-8? - PullRequest
1 голос
/ 26 августа 2011

У меня есть сайт, работающий через IIS 7.5, страницы которого закодированы в UTF-8 (обратите внимание, у меня нет следующей проблемы, если я вернусь к ASCII).У меня есть страница Main.html, которая включает в себя содержимое верхнего и нижнего колонтитула.Когда эти файлы включаются через SSI, пробелы вводятся в тело и вынуждают содержимое моей страницы.Если я объединю файлы вместе, эта проблема исчезнет. Этот вопрос такой же, как мой , но ответ у меня не работает.

Рассмотрим следующие 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>

SSIInclude.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 Ответ

3 голосов
/ 26 августа 2011

Вероятно, файлы сохраняются как UTF-8 + BOM.

BOM = метка порядка байтов

BOM - это всего три (невидимых) символа, которые добавляются в началедокумент.(По крайней мере, в UTF-8)

Вы не хотите этого в ваших документах.

Некоторые текстовые редакторы дают вам возможность сохранить файл в формате UTF-8 без спецификации.

Я использую EditPlus для этого, но другие могут также работать.

...