2011年09月03日 07:35 ~ Movable Type ~
MTで生成したページを見ると画面が真っ白 |
Movable Typeを導入して3年。
いろんな知識を得て自分の出来ることが増えていく中、ただ1つの悩みだけがなかなか解決できずにいた。 それは表題のとおり。
Movable Typeで生成したブログ記事・アーカイブページを見ようとすると画面が真っ白になる時がある。
3年もいろいろ調べてやっと解決できました(時間かかりすぎ→汗)
その経緯を備忘録として残しておきます。 2008年 Movable Typeを導入 ↓ 2009年 テンプレート完成
表示確認したら画面が真っ白になってしまうことが判明 テンプレートには、
<meta http-equiv="Content-Type" content="text/html; charset=<$MTPublishCharset$>">
と入力しているにもかかわらず処理後のソースは・・・
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8>
となっていた。
つまり「charset=UTF-8」の後の"が消えていたということ。
「"」が消えないようにする方法を探して実行するも解決には至らずorz
※手動でブラウザのエンコード設定を「UTF-8」にするとページが正常に表示された。 ↓ 2011年 Movable Typeをバージョンアップ
バージョンアップしたら前回の悩みの種だった「charset=UTF-8」の後の"が消える現象が解決した。
しっかりと
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
と表示されていた。
これで表示できて安心と思いきや・・・。
ページ表示できる時と、以前のように画面が真っ白の時があった。
特徴として、前のページに戻り再度リンク先をクリックすると正常に表示できる傾向があった。
そしてブラウザのエンコード設定を自動選択にしていると「シフトJIS」になっている。(本来ならUTF-8) ↓ 2011年9月 やっと原因が分かる
ネットでいろいろ原因を探すこと3年。
<meta>タグの前に<title>タグを入れていたことが原因らしい。 修正前
<title>HOT Tokyo-Metro.info</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
↓
修正後
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>HOT Tokyo Metro.info</title> IEだとソース上でマルチバイト文字を発見したとき、文字エンコードの指定がないと自動的にShift_JISでエンコードしてしまうみたい。
結果的に、UTF-8の文字が来たときに画面の描画が止まり、真っ白なページを表示するとか。 とにかく長かった悩みがやっと解決しました。
安心してMovable Typeを使えます。
|