今制作してる携帯サイトの案件で、かなり参りました。
携帯サイトで共通パーツがあり、ページによって表示/非表示させたり順番を並べ替えないといけなかったしてしたので、
Dreamweaverのライブラリを使いました。
そしたら、Dreamweaver CS3でフォルダへのリンクの不具合を解決するハック – kazkiScopeでも書かれてる以下の不具合に遭遇。
不具合その2:ライブラリでフォルダをリンク先に指定したとき、末尾のスラッシュが外れる
これも再現してみます。ライブラリを作成して、特定のフォルダへのリンクを作成します。
<a href="../folder/">フォルダへのリンク</a>
(/Library/test.lbi)そして、このライブラリをルート直下のhtmlに配置してみると、
<a href="folder">フォルダへのリンク</a>
(/test.html内)……リンク自体は有効だけど、末尾のスラッシュが外れている。
そう!これ!同じ問題起きたよ!
docomoはリンクでディレクトリ指定するとき、最後の”/(スラッシュ)”が無いと、
『サイトが移動しました(301)』
とエラーメッセージが出てしまいます。
参考サイト)
DoCoMo サイトが移動しました(301):クリエイターズブログ:ほのおのクリエイターズ
DoCoMoで「サイトが移動しました(301)」が出る場合 – Apelog
kazkiScopeさんのエントリーでは親切にも解決策も書いてくれてた。
「ライブラリ内でのフォルダに対するリンク先は、href=”../folder/./”というように最後に”./”を追加して指定する」
おー!これで治る、いやっほー♪
と思って試してみたら、、、、
Mac / DW CS3では不具合が治らなかった….orz
結構、昔からの問題みたいでDW8ぐらいからあったらしい。
(2chでも「テンプレートのオプション領域で代用してる」、って人もいた。)
今回は、全ページPHPなサイトなので、ライブラリ(.lbi)を、PHPで書き直してPHPのincludeさせる方向で修正する事にしました…orz
あまりに悔しかったので、Adobeサポートセンターに不具合の以下の報告した。
******不具合報告******
不具合の内容:
・Libraryでディレクトリ指定のリンク(最後が”/”スラッシュで終わる形)をすると、
利用したHTMLでは、最後の”/”スラッシュが無くなる。このままだと一部のブラウザで301エラーを返してしまう。
(docomo携帯ブラウザ等)問題の再現方法:
1.ライブラリでリンクをディレクトリで指定
/Library/test.lbi
<a href=”../directory/”>リンク</a>2. 1のライブラリをHTMLで利用する
結果:
<a href=”directory”>リンク</a>
と、”/”で終わらない。期待した結果:
<a href=”directory/”>リンク</a>
スラッシュでリンクが終わる事。
明示的にディレクトリを指定してるのだから、”/”で終わらせるべき。
決してイレギュラーな使い方じゃないと思うんだ。
kazkiScopeさんもエントリー中で書かれてるけど、なんとかしてくださいよ、Adobeの開発者さん。
テンプレート機能とかは満足してるのだから。
この投稿にタグはありません。














