- ベストアンサー
ホームディレクトリを示すチルダ(~)の使い方について
- ホームディレクトリを示すチルダ(~)の使い方に悩んでいます。外部JavaScriptファイルへの参照では問題なく使用できますが、ページへのリンクではURLの一部と認識されてしまいます。
- ホームディレクトリを示すチルダ(~)をURLの一部ではなく、ホームディレクトリを参照するようにする方法を教えてください。
- チルダを含んだURLを使用した際に、ホームディレクトリの下にあるファイルに正しくリンクする方法を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
的はずれかもしれませんが 「http:での『ホームディレクトリ』ってどこ?」 file:だったら、ブラウザを起動したユーザーのホームディレクトリだと予想できます。 (もしかして 「外部JavaScriptファイルを参照する時…問題無く」というのはローカルファイルでの確認時ではないですか?) が、http:だと、httpサーバーの所有者ってことにならないでしょうか? ~ユーザー名にしても、http上での位置であって、実際のファイルシステム上の位置とは限りません。 httpサーバーがユーザー名と結び付けているだけです。~aaa が ユーザーbbbと結び付いているかもしれません。 あるいは。 「ブラウザのURL解析エンジンと、JavascriptのURL解析エンジンの挙動が違う」 というのも考えられます。最近のブラウザでは高速化のため、Javascript専用のエンジンを使ってるケースもあるので。
その他の回答 (3)
- 神崎 渉瑠(@taloo)
- ベストアンサー率44% (1016/2280)
ホームディレクトリというのがどこなのかわかりませんが、 HTMLファイルのあるディレクトリから相対URL、絶対パス、絶対URLのいずれかで指定して下さい。 http://xxxxxx/yyyyy/index.html から相対URLでaaa.htmでしたらhttp://xxxxxx/yyyyy/aaa.htmですし、 http://xxxxxx/index.htmlから相対URLでaaa.htmでしたらhttp://xxxxxx/aaa.htmになります。 /yyyyy/aaa.htm このように絶対パスで指定すると 参照元がどこであろうとhttp://xxxxxx/yyyyy/aaa.htmを指定したことになります。 http://xxxxxx/yyyyy/aaa.htm このように絶対URLで指定すると、参照元のパス、ドメインにかかわらずhttp://xxxxxx/yyyyy/aaa.htmを指定したことになります。 > 例えば、外部JavaScriptファイルを参照する時、 > <script type="text/javascript" src="~/test1.js"></script> > とURLにチルダを含んでいても問題無く、ホームディレクトリの下にある > test1.jsファイルに参照できます。 こういう設定の仕方(~というディレクトリを参照した場合はパス指定に何らかの変更を加える)は聞いたことがありません。 サーバーの管理者に特殊な設定がされてないか、問い合わせてみて下さい。
お礼
わかりづらいサンプル(URL)を記載したにもかかわらず、 わかりやすく解説していただいて、ありがとうございました。 ちなみにサーバ側の設定ですが、開発機であるWinXP(IIS5.5)と 実用機であるWinServer2008(IIS6.0)で特別な設定は施していません。 "~/test1.js"という参照で正常に動いております。
サイトのデータは通常(~/aaa.htm)で無く(index.htm)を起点として構築します。 ですからaaa.htmがindex.htmと同じ場所に有るのでこのコードは(window.open ("aaa.htm"); でOK チルダは普通("http://xxxxxx/yyyyy/~ユーザ名/index.html)と言う場合に使用します。 上記の記載は絶対アドレス表記です。
補足
アドバイスありがとうございます。 おかげさまで、window.open ("aaa.htm"); は理解できました。 ただ、チルダは http://xxxxxx/yyyyy/~ユーザ名/index.html という場合に 使えるのであれば、外部のJavaScriptファイルに参照する <script type="text/javascript" src="~/test1.js"></script> も 使えないはずなのでは?という疑問が残ってしまってます。 この理由について何かご存知であれば、ご教授の程宜しくお願い致します。
- yyr446
- ベストアンサー率65% (870/1330)
だめもとで、 window.open ("%7E/aaa.htm");
お礼
アドバイスありがとうございます。 私の方でも"だめもと"でやったのですが、 やっぱりだめでした。
お礼
わかり易い解説ありがとうございました。