現在、月ごとのページ(monthly Archive)とカテゴリ別のページがIEから読めません。
なぜ読めないのかも分かりません。
Another HTML-Lintでも他のページと同じように99点と出るので
恐らくはIE独自のバグによるものだと思うのですが
どこがどういったわけでこの二箇所だけ閲覧できないのかが全く分かりません。
モジュール化されているので中身自体はひたすらにincludeされていて
include先が少し違うという以外には本質的な違いがほとんどないので……。
マジョリティであるIEを切り捨てるということもまたサイト作成者としては現実味のない選択なのですが。
如何ともし難いです。
-----------------------------------[追加]-----------------------------------------
だいぶ前に解決していましたが書き直すのを忘れていました。
原因はIEの互換モード特有のバグだったようです。
PHPによってuser agentごとの動作を変え、
IE上では標準準拠モードで動作するように書き換えています。
具体的にはIEには以下
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Script-Type" content="text/javascript" />
<link rel="stylesheet" href="http://samourai.s41.xrea.com/mt/styles-site.css" type="text/css" />
(Content-Typeはtext/htmlで出力)
それ以外には
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://samourai.s41.xrea.com/mt/styles-site.css" type="text/css"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
(Content-Typeもtext/htmlではなくapplication/xhtml+xmlで出力し、meta http-equivには書かない)
これを吐くようなファイルをincludeしています。
ちなみに<head>で止まっているのは<title>がスタティック(URLによらず一意)でないためです。
周知のとおりXHTMLでは後者が正しい記述ですが
IEの勝手仕様により後者は正しく解釈されません。
それどころか表示すらされなくなったということだったようです。
ある人が書いているのですが、
もしHTMLタグを受け付ける状態でコメントを受け
その中でincludeやreadfileされた場合には見られてはいけないファイルを
覗かれるという可能性もあるようです。
HTMLタグを受け付けていない状態でテストしたら
"<"、">"ごと消されていたのでまず問題ないでしょう。
モジュール化に勤しんでいる多くのサイトでこのような記述が見当たらなかったので
少し怖くなってしまいました。
includeって便利ですね。
いくらincludeしても容量は増えないしキャッシュが効いて高速になるし。
効くのか?たぶん効く。
総てをモジュールにしたらこのサイトの場合でarchivesの容量が1/5になりました。
だけどindividual entryについてはまた試行中かな。
このサイトの設定ではindividual entryがdateでlavelされているので
category entryのlistを読ませるという段で多少間誤付いたけど
不明瞭なマニュアルに暫く首っ引きになって実装できました。
モジュール化で満足したのでdynamic publishingはせずにPHP staticに留めます。
Rebuildがやたらに重くてそろそろ鯖管様に何を言われてもおかしくない,かも。
まだまだ全体的な再構築を進めたいのに今日も連続Rebuildをしてしまったし
まずはPHP化→Redesignとやってみたい。
Individual Entryの不整合な点もPHP化の恩恵に与ることだろう。
しかし,どうにもIndivudual Entryのaccessibilityとなると良い案が浮かんでこない。
というのもこれは構造的な問題であって,
カレンダーやIndividual Entry間のリンクなどの日にちを辿って入る場合と,
Category Archiveから入る場合と,Monthly Archiveから入る場合の3通りが考えられるが
これを総てモジュールとしてIndividual Entryに組み込むとなると,
記事に対してメニュー部分が極端に長くなってしまう。
一時期考えたのはIndividual Entryを撤廃してMontyly ArchiveとCategory Archiveに
それぞれ振り分けてしまうことだが,果たして俺にできるだろうか。
まずはここまでを済ませてから出来合いでも探してみようか。
やろうやろうと思いながら時間もないしやる気もないし,と延期してきたことの一つが
このサイトのHTML記述をValidに改めることでした。
なにしろIEにはXHTMLなのにXML宣言を入れると後方互換モードで解釈するという
諸悪の根源にして最も手強いラスボス的なバグがあったりしたものだから。
いままではhtml-lintにああだこうだと文句を言われながらも
痛し痒しという具合であったが,ついに重い腰を上げて作業に取りかかってみました。