乗りかかった船と思い、HPファイルをローカル環境で階層構造管理をする場合の、リンクについてテストしてみました。結果を報告します。
○ テストに使ったフォルダ名(5個)
test
aaa
0987654321abcdefghijklmnopqrstuvwxyz
bbb
日本語
○ テストに使ったファイル名(6個)
000
001
002
003
004
日本語
○ テストした階層構造
[ ]で囲ったものがフォルダ。 .htm の付いているものがファイルです。
リンクは、ファイルごとに5個、6ファイル相互間で全30個張りました。
第1層 第2層 第3層 第4層 [test]→ 000.htm →[aaa] → 001.htm →[bbb] → 002.htm →[日本語]→ 004.htm →[0987654321abcdefghijklmnopqrstuvwxyz] → 003.htm → 日本語.htm
以下は結果です。
【 絶対パス 】の場合
A) Just View 3.01 、Netscape Communicator 4.03
この二つのブラウザでは、すべてのリンクについて、跳びました。
B) Internet Explorer 3.02
a) 他のファイルから004.htmへのリンク、5個は跳びませんでした。
<A HREF="file:///D:/test/aaa/日本語/004.htm">004</A><BR>
b) 他のファイルから、日本語.htmへのリンク、5個も跳びませんでした。
<A HREF="file:///D:/test/0987654321abcdefghijklmnopqrstuvwxyz/日本語.htm">日本語</A><BR>
c) その他のリンクは、すべて跳びました。跳べたのが20個、跳べなかったのが10個となります。
以上は、経験済みの範囲で予想通りでした。
☆ フォルダ名に日本語があると、または、ファイル名が日本語であると、 受け付けてくれないブラウザがあるということは、サーバー上で階層構造を作る場合はフォルダ名が日本語であってはならない。ファイル名は、どの場合でも日本語であってはならない。さもなければ、ネット上の何割かの人たちが、そのHPのそのページへ跳ぶことができない。
・・・ということになります。(ただし、これは、「絶対パス」のテストなので、そのHP内の「相対パス」によるリンクについては、まだこれは言えませんか)
☆ フォルダ名に日本語があっても受け付けてくれるブラウザを主ブラウザとする人は(例えば私ですが)、ローカルで階層構造管理をし、なおかつ、サーバー上で単一構造管理をするのであれば、フォルダ名に日本語を使っても、大きな不便はない。「フォルダ」も「フォルダ名」も、サーバー上に持ち込まないから。
・・・ということにもなるでしょうか。しかし、例外的ですね。
【 相対パス 】の場合 ※ リンクはすべて最短で張りました。
※ 私は、#1319発言以降、しつこいまでに繰り返していますが、ローカルリンクを「絶対パス」で記載しています(正確には一太郎8に書かせています)。そこで、「相対パス」で作ってみるのは初めての経験でした。
※ 「相対パス」の場合、書き方は一種類ではなく、遠回りしても書けるのですね。なんか面白いと思いましたが、このテストでは、最短で書いています。
※ 「絶対パス」テストで使った上記 test フォルダを丸ごとコピーして、test02 とし、フォルダとファイルの位置関係は崩さずに、各ファイルのリンク記載だけを、相対パスに書き直してみました。
C) Just View 3.01 、Netscape Communicator 4.03
この二つのブラウザでは、すべてのリンクについて、跳びました。
D) Internet Explorer 3.02
d) 他のファイルから、004.htm へのリンク5個は、跳べませんでした。
<A HREF="aaa/日本語/004.htm">004</A><BR> ・・・000.htmソース
<A HREF="日本語/004.htm">004</A><BR> ・・・001.htmソース
<A HREF="../日本語/004.htm">004</A><BR> ・・・002.htmソース
<A HREF="../aaa/日本語/004.htm">004</A><BR> ・・・003.htmソース
<A HREF="../aaa/日本語/004.htm">004</A><BR> ・・・日本語.htm ソース
e) 004.htmから他のファイルへのリンク5個も、すべて跳べませんでした。
<A HREF="../../000.htm">000</A><BR>
<A HREF="../001.htm">001</A><BR>
<A HREF="../bbb/002.htm">002</A><BR>
<A HREF="../../0987654321abcdefghijklmnopqrstuvwxyz/003.htm">003</A><BR>
<A HREF="../../0987654321abcdefghijklmnopqrstuvwxyz/日本語.htm">日本語</A><BR>
f) 他のファイルから、日本語.htm へのリンク5個のうち、跳べなかったのが、次の4個です。
<A HREF="0987654321abcdefghijklmnopqrstuvwxyz/日本語.htm">日本語</A><BR> ・・・000.htmソース
<A HREF="../0987654321abcdefghijklmnopqrstuvwxyz/日本語.htm">日本語</A><BR> ・・・001.htmソース
<A HREF="../../0987654321abcdefghijklmnopqrstuvwxyz/日本語.htm">日本語</A><BR> ・・・002.htmソース
<A HREF="../../0987654321abcdefghijklmnopqrstuvwxyz/日本語.htm">日本語</A><BR> ・・・004.htmソース (← 注 e) の5個目とのダブリ計上)
g) 他のファイルから、日本語.htm へのリンク5個のうち、跳べたのが、次の1個です。
<A HREF="日本語.htm">日本語</A><BR> ・・・003.htmソース
h) 他のリンクはすべて跳べました。跳べたリンクが17個、跳べなかったのが13個となります。
i) 「絶対パス」のテストの際は跳べなければ何も動かないだけでしたが、「相対パス」のテストの際は、跳べないときに必ず、赤丸に白バツのある、エラーのダイアログボックスが開きました。
☆ d) は予想通りでした。
☆ e) が意外でした。ソースのリンク記載自体に日本語が使われていなくても、実際に「日本語名の付いたフォルダ」をさかのぼる場合は、跳んでくれないのですね。よって、サーバー上で、階層構造を作る場合、フォルダ名が日本語でも、リンク記載自体に日本語が書かれない相対パスであれば大丈夫のように思えるのは、間違い。となりますか。ますます、サーバー上のフォルダ名は、半角英数字が絶対という結果です。
☆ f) と g) の結果は面白いですね。Internet Explorer 3.02 は、日本語ファイル名を全く受け付けてくれないかと思ったのですが、さにあらずです。同一フォルダ内にあるファイル間を最短相対パスでつなぐ場合だけは( 003.htm → 日本語.htm )、リンク先ファイル名が日本語でも跳ぶ、ということになります。
※ ということは、サーバー上が単一構造ならば(それは同一フォルダということだから)、日本語名のファイルがあっても、Internet Explorer 3.02 は、跳んでくれるのでしょうか?
ただし、外部から直接その日本語ファイル名に絶対パスで飛ぶことはできず、そのHPの他のファイルからの相対パスで跳ぶときだけ。 ・・・う〜ん、ちょっと確かめてみたいです。
☆ 以上です!
もう十分わかってらっしゃる方には、余計な報告だったと思います。
でも、私は勉強になりました。
ではまた。