- 締切済み
URLの相対指定について
いま、BASEタグを使ってURLを相対指定して、簡略化をしているHTML文書があります。 このHTML内で、もう一つ別の相対指定の基準を指定する方法はあるのでしょうか? リンクの位置関係は簡単に書くと下のようになってます。 Web Site +-HTML文書 +-リンク先のファイル(複数) Local +-リンク先のファイル(多数) Localのリンク先のファイルが多数あるので、 いちいち<A href="file:///.....と書くのがいやなので、 BASEタグによる基準をLocalのフォルダにしています。 しかし、こうするとWeb Site上へのリンクはいちいち、 <A href="http://.....と絶対指定しなければなりません。 これを回避したいのです。
- kazu-kun
- お礼率20% (56/270)
- HTML
- 回答数4
- ありがとう数0
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- kokucho81
- ベストアンサー率61% (157/255)
ある程度、http:// と file:// がある程度まとまっているのであれば、まとまりごとに、<BASE URL を指定してやっても良いと思います。1HTML文書内で何度でも切り替えれるわけですから。 ぐちゃぐちゃだと、お手上げですね。 (ローカルと、WEBを両方相対にしてしまうと、両者が記述上、全く区別されていないわけですから、識別不可能です(人間でも識別不可能ですね) ただし、1つのHTMLファイル内で、WEB上とローカルへの指定を両方しながらも、オフラインでもリンクをうまく連結するように記述することは以下の方法で出来ます。 (1)ローカルへの指定は絶対指定。file://~とする。 BASEは使わない。 (2)WEBでのサイト内の指定は全て相対指定にする。 (3)HTML内では、JavaScriptでプロトコルを判定。 file://プロトコルなら、BASE URLをfile://~~として、相対指定をローカルへと連結させる。 http;//プロトコルなら、BASE URLをhttp://~~として、相対指定をHTTPへと連結させる。 この方法なら、1つのファイルで、(オフラインで)ローカルファイル閲覧でも(オンラインで)該当WEB閲覧でも両方つつがなく動作します。
- wogota
- ベストアンサー率42% (66/154)
仰せのことは、大体理解できました。 つまり、絶対指定で http://... となる部分と、 file:///... となる部分を それぞれ、相対指定したいということだと思います。 結果としては、出来ないということになります。 BASEタグのHREF属性で指定されたURLは、httpやfile、ftpのように プロトコルごとに指定を置くことが出来ません。 一度、file:///... とすると、あらゆる相対指定に対しては、 指定文字列の前にBASEタグのHREF属性のURLを直接つなげているものと 解釈されます。 というよりも、補足された内容から察するに、BASEタグの指定を しないほうがいいのではないかと思います。 第3者が見ることが可能なウェブ上にローカルのパスを表示することの 理由が見いだせないこともあります。 アップするディレクトリ構成をそのままローカルに用意し、 ローカルのファイルも、この構成に矛盾しない位置においてから 表示するように工夫すれば、敢えてBASEタグをつける必要は 無いと思うのですが。 いかがでしょう?
- wogota
- ベストアンサー率42% (66/154)
もしかしたら、BASEタグを変更せずに、アップロードしているのは 無いでしょうか?アップロードしたHTMLファイルの位置をアドレス欄 などから参照して、BASEタグのHREF属性を、適当な位置に書き換える 必要があります。 例えば、表示しているページが、"http://hogehoge.gov/me/hoge.html" としたとしましょう。このとき、BASEタグのHREF属性には "http://hogehoge.gov/me/"を設定するのが適当です。 いかがでしょうか?
補足
たぶん、No.1のかたもNo.2のかたも、誤解されていると思いますが、 BASEタグのhrefにLocalのURL(file:///...)を指定しているHTMLをウェブサイト上に置いた状態で、敢えてLocalのファイルをリンクして使おうとしているのです。 しかも、そのHTML上から、「そのHTMLがあるサーバ上の別のHTMLファイル」などに対しても複数のリンクがあるのです。 この時「サーバ上の別のHTMLファイルなどに対する複数のリンク」を絶対URLで指定せずに相対指定することによって、このウェブサイトのコピー(というか原本)がローカルにある時に、オフラインでの閲覧を可能にしたいのです。
- Methyln
- ベストアンサー率29% (242/823)
htmlタグの解説本に書かれているとは思いますが、表示されているファイルから リンク先のファイルまでが同じサーバ上であれば、相対ディレクトリ指定で 指定できますが..... 同一ディレクトリのa.htmファイルへのリンク <a href="./a.htm">~</a> imageディレクトリ内のa.htmファイルへのリンク <a href="./image/a.htm">~</a> 1階層上にあるディレクトリにあるa.htmファイルへのリンク <a href="../a.htm>~</a> もちろんこれは、別サーバへのリンクの場合は絶対指定しかできません。 (まぁ、当たり前ですね。)
補足
もちろん、上で書いた'Web Site'というのは同一サーバ上です。 しかし、BASEタグで基準をLocalにしている為、全てのAnchorに対して、 Localが基準にされてしまいます。
関連するQ&A
- Dreamweaver で <BASE HREF= で指定したパスの画像が表示できない。
Dreamewaver3を使用の際の 下記の状態で、編集プレビュー上(名称が違っていたらすみません)の 画像などが表示(またはリンク)できずに困っています。 ------------------------------------ <BASE>タグで絶対パスを指定します。 その絶対パスにあわせて画像などのリンクパスを記入します。 たとえば、 <BASE HREF="http://○○.ne.jp/~mysitename/"> と、ベースを設定。 本文中に <IMG src="images/○○.jpg"> とします。 ファイルの階層(この場合画像のデータの場所)は、 http://○○.ne.jp/~mysitename/images/○○.jpg ですが、これは、ローカルではないので表示が無理なのはわかります。 ですので、編集中はローカルの階層にあわせて <BASE HREF="file://ドライブ名/HTML編集用フォルダ/"> と、言う感じにHTMLを作成し、アップ前に<BASE>部を置き換える ようにしました。 これなら、ローカル内でもBASEは効くはずですよね? でも、編集画面では表示できないようなのです。 これって仕様なのでしょうか。 また、最新版ならできるよ~という情報などがありましたら バージョンアップも考えているので、情報提供おねがい致します。
- ベストアンサー
- その他(ソフトウェア)
- これは相対URLなんですか?
HTMLを少しかじっている者です。 仕事の関係で、とあるサイトのデータをローカル上に落として、ローカル上で動くようにしているのですが・・・・ サイトのソースを見た所、画像のファイル名のURLの書き方が以下のようになっています。 <img src="/image/gazou.gif"> 私は以下のような書き方しか知らないのですが、 <img src="gazou.gif"> <img src="image/gazou.gif"> <img src="../image/gazou.gif"> <img src="/image/gazou.gif">この書き方も相対パスの書き方なんですか? 本当に、少しだけHTMLをかじっているだけなので、もしかしたら基本的な事なのかも知れませんが、みなさまどうか、教えてください。
- ベストアンサー
- HTML
- 相対パスでリンクできない
まったくお手上げですので、お知恵をお貸しください。 マイドキュメント内に「homepage」というフォルダがあるとします。 この中に「gazou」(←画像ファイルのみ存在)「flower」というフォルダを作ります。 ほかのHTML文書は、特にフォルダを作らず「homepage」内に存在するとします。 「flower」内に「flowerin.html」「frill.html」 という2つのHTML文書を作ります。 このお互いをリンクさせるときは <a href="flowerin.html">○○</a>(わざと全角) <a href="frill.html">○○</a> でいいと思うんです。 frill.htmlからはリンクできるのに、flowerin.htmlからはなぜかリンクできません。 何度やってもできないので、どこか間違っているのでは、とお尋ねしました。
- ベストアンサー
- HTML
- スタイルシートの相対指定方法はありませんか
表現に凝らないこともあってずっと自分でHTMLを打ってサイト作成してきました。 IEからfierfoxに変えて一番困ったのはスタイルシートの相対指定ができないこと。直すのは簡単なのですが、ローカルでのテストの時などに困っています。 何かうまい方法はありませんでしょうか。
- ベストアンサー
- ホームページ作成ソフト
- <BASE>タグを特定の部分のみ使用したい。
ホームページ上のデータファイルをまとめて1つのフォルダに入れているのですが、<BASE>タグでベースとなるURLをデータフォルダのパスにしてリンクはデータ名だけにしたいと思います。 こうすることでぱっと見でも多少リンク先がわかりにくくなるのと、相対リンクの..などをなくすことができ軽量化をしたいです。 ただ<BASE>タグを使うとその他のリンクも全てベースからのURL記述になるので不便です。特定部分だけ<BASE>タグを反映させることはできるでしょうか? データというのは動画なのでobjectやembedタグで指定しています。このタグだけ<BASE>タグが有効になればいいです。
- ベストアンサー
- HTML
- リンクのURLに関して
ある、教材でHTMLを勉強しています。 リンクを相対指定にする説明をしています。(相対指定にした方が良い二アンスです。) そこで質問です。 リンクを絶対指定する際と相対指定にする際はどのような違いがありますか? メリットやディメリットなども教えてください。
- ベストアンサー
- HTML
- リンク先が指定した行からずれてしまう
W7、IE8でタグを書いて個人HPを作っております。 リンク元でリンク先のHTMLとその行を<a name="・・・・”></a> とやりますと、htmlにはリンクするのですが、指定した行(場所)でなくリンク先htmlの最終行に飛んで しまうのです。 また、これは前々から思っていたのですが、確実に数行だけずれてしまうのです。 タグの記述に間違いがあるかもしれませんが、どういうミスが原因として考えられるでしょうか。 よろしくお願いします。
- ベストアンサー
- その他([技術者向] コンピューター)
- 一つのリンクに複数のURLを指定
一つのリンクに複数のURLを指定できますでしょうか? 想像タグ <a href="http://www.google.co.jp/" & "http://www.yahoo.co.jp/" target="_blank">検索</a> JavaScriptでも 構いません。 ネットではこんなのが見つかりました。 Bridges | BridgeURL http://bridgeurl.com/
- ベストアンサー
- HTML
- Flashでの相対パスでのリンク設定方法
Flashでサイトを制作していますが 今まで、Flashのページから他のHTMLで生成されたページへリンクを貼って飛ばす場合には、HTMLページを先にサーバーに上げて、絶対パスのURLでFlash内でリンク設定をしていました。 その方法しか知らなかったのですが・・・ Flashでも、HTML同様に ローカル上で同じフォルダ内で 相対パスでHTMLページにリンクを設定する事が 出来るとの事ですが・・・ その一連の作業のやり方が分からずに困っております。 ・window.openの設定(相対パスにて指定) ・以前のサンプルで渡したように横550px、縦520pxのウィ ンドウで開くように ・スクロールバーとリサイズハンドルあり(他はなし) ・ウィンドウ名はswin という内容でFlash内にHTMLページへのリンクを設定して欲しい!と言われていますが・・・ どの様に設定すればいいのでしょうか? 宜しくお願い致します。
- ベストアンサー
- Flash
補足
やっぱり出来ないのですかね・・・。 最後のご指摘ですが、実はウェブサイトの構成の原本は、Cドライブにあって、リンク先のローカルファイルはDドライブにあるので、相対指定出来ないんですよ(^^; それとも出来るのかなぁ~?<CドライブからDドライブへの相対指定。 敢えて全てを相対パスにしたい理由は、ウェブサイトの構成の方は、サーバがいつでも簡単に変えられたり、ローカルで確認しやすいため。 ローカルファイルのほうは、リンクしたい理由があって、かつ基準となるフォルダが移動する可能性があるため。 ・・・なんです(^^;