doctype (localhost 上) がすべての head メタ情報を から<head>
にプッシュするまでの期間<body>
。
いくつかの調査を行った結果、UTF-8 を BOM なしではなく BOM 付きで使用することに関係していることが示唆されましたが、(W3C バリデーターを使用しても) チェックして再確認し、BOM なしで使用しています。
これが起こる他の理由はありますか?
ピリオド (または不要な BOM) により、HTML パーサーは body 要素が開始したと認識します。したがって、「本文を解析する」モードになり、その後に続くすべてが本文セクションに入れられます。
Unicode ファイルの最初のバイトである場合の BOM であるバイト シーケンスは、ファイル内の他の場所にある「ゼロ幅のブレーク スペースなし」文字です。したがって、ピリオドや「 」などの印刷可能な文字です。または "x" であり、 body が開始される前にパーサーがそれを認識した場合、 HTML ではすべてオプションであるため、認識されていないa<html>
<head>
およびタグがページの作成者によって単純に省略されたと見なされます。<body>
BOM が疑われることが多い理由は、BOM が目に見えず、通常、作成者が手動で追加するのではなく、ツールによって追加されるため、作成者は BOM がそこにあることに気付かないためです。これはピリオド文字には当てはまりません。
最終的に何が問題なのかはわかりませんが、新しい header.php を作成し、コンテンツをコピーして貼り付けたところ、すべてが機能しました。