dポイントプレゼントキャンペーン実施中!

しょうもない質問ですみません。

絶対パス指定を基本としたウェブサイトを構築しようとしているのですが、ローカルの環境ではチェックがままなりません。

リンクや画像の指定に、「./」や「../」を使わず、
「/~.html」などとしたいのです。

でも、ローカル(この場合、WinXP)ではディスクの直下にファイルを保存しても、
file:///c:/index.html (cドライブの場合)となってしまい、絶対パスで「/index.html」と指定した際に、ローカル環境でリンクされる「file:///index.html」と違ってきてしまい、うまいこと製作が進みません。

この場合、どうしたら簡単にローカル環境にサーバーと同様の環境を再現できるのでしょうか?

A 回答 (6件)

私もオフトピで。


>>そこまで巨大なサイトを作らないので。
>小規模サイトなら相対パスで十分ということですね。
ちょっと理由があんまり正しくありませんでした。(というか適当に書きました。すいません)
小規模でも絶対パスのほうが有用なのかもしれません。


相対パスを使う理由としては、絶対パスはサーバによって違う場合があるから。
特にレンタルサイトなんかを使っていると違う場合が多かったです。(何年も前の事です。最近の事情は知りません。)
引っ越すとトップからの絶対パスが違うがためにリンクを全て書き直すなんて手間がかかります。(一括置換って手もあるけど、頻繁にやらない作業ってのは危なっかしいし)

そんなわけで企業付きのサイト構築をする業界人は別として多くの個人サイト製作者は相対パスを使います。
また、絶対パスを知らなかったりURLと混同している場合も多いようです。

あと、個人的にはCGIの配布なんかやっているので絶対パスはご法度だったりします。
    • good
    • 0
この回答へのお礼

ご回答有難うございます。

なるほど、言われてみれば確かにそうですね。
現状の環境にしか目が行っていませんでしたが、サーバーによっていろいろな環境があることは想定していませんでした。ルートから違ったりするとややこしそうですね。

現状の環境のみを見ると、絶対パスのほうが有用であることは間違いないのですが、トータルで考えると疑問に思えてきました。

お礼日時:2006/04/12 11:40

アドバイスって言うかオフトピです。



>WebDeveloperという開発向けプラグインが便利で、
一応Firefoxに機能を追加するものとしてのプラグインという表現は間違いということになります。「拡張機能」が正です。

http://www.mozilla.gr.jp/news/topics/viewonetopi …

あと、同じ場所からIE向けのWeb開発ツールも出ているのでそちらも利用されると便利ではないでしょうか?
    • good
    • 0
この回答へのお礼

ご回答有難うございます。

やはり、WebDeveloperは、いちど使うと手放せない「拡張機能」なので、こちら重視でやっていこうと思います。

(個人的に、IEというかMSの作るアプリがキライという事も多分に影響していると思いますが)

お礼日時:2006/04/12 09:46

サーバソフト(AnHTTPdやApach)をインストール/起動して、PCをサーバ化すればよいかと。


「自宅 サーバ」とかで検索すると情報が得られると思います。

CGIのテストなどではよく使われます。
ただしCGIを動作させる事が目的であって絶対パスはあまり(というか全く)使いませんね。
そこまで巨大なサイトを作らないので。
    • good
    • 0
この回答へのお礼

ご回答有難うございます。

やはり、その領域に足を踏み入れないとならなくなりますね。もしかしてサーバーを立てずに何か擬似的に再現できる方法がないかと探していたのですが、やはりムリそうです。

>そこまで巨大なサイトを作らないので。

おっしゃるとおりです。小規模サイトなら相対パスで十分ということですね。

お礼日時:2006/04/12 09:42

まさに、wba013 さんと同じ問題に遭遇してました。


多量のHTMLの見本と、JSPによる実装の関係でした。
で、私の解決策は・・・

1.ファイル中の「/~.html」の、先頭の「/」の記述は全て外す。
2.<base href=~> をJavaScript化。
3.パスを定義した外部スクリプトファイルを用意する。
・ローカル用(相対パスで済む場合)
var urlBase="./";
・ローカル用(絶対パスが必要な場合)
var urlBase="ile:///c:/";
・サーバー用
var urlBase="/";

もちろん、ローカルでもサーバーでも外部スクリプトファイル名は同じにします。
---------------------------------
実際のコーディングは、外部ファイルurlBase.jsとして・・・
<SCRIPT src="urlBase.js"></SCRIPT>
<SCRIPT>
document.write('<BASE href="'+urlBase+'">');
</SCRIPT>

・・・どうでしょ?これで解決できませんか?(笑
    • good
    • 0
この回答へのお礼

ご回答有難うございます。

うわぁ、、、JS化ですか!
たしかに、コレなら解消しそうですが・・・。

なかなか容易にはいかないようですね。

お礼日時:2006/04/12 09:35

全然自信ないですけど。



何が目的でそんなことを目指していらっしゃるのか分かりませんが、
仮に私が同じことをしないといけなくなったとしたら、サーバーにアップロードするぎりぎりまでfile:///C://~~で放っておいて、最後の最後でテキストエディタかSpeeeeedっていうソフトで一括置換すると思う。
    • good
    • 0
この回答へのお礼

ご回答有難うございます。

絶対パスって、そんなにニーズ低いんでしょうか・・・。

jsやcss、imgなど、外部ファイルの呼び出しが多ければ多いほど、ディレクトリが多ければ多いほど、絶対パスでの記述のメリットって大きいと思うんですが・・・。

お礼日時:2006/04/11 18:27

 なぜ絶対パスにこだわられるのかわかりませんが、ローカルでチェックするために思いつく手法としては、



・<base href=~>を利用する。
 あらかじめ、baseでリンク先のURL(ローカルではパス)を指定しておきます。
 ファイルを指定する場合は、相対指定と同じ書き方になりますが、
 意味合い的には絶対指定です。
 ローカルでチェック後、baseのURLを書き換えてアップします。
 http://www.tohoho-web.com/html/base.htm

・テキストエディタで一括置換
 とりあえずローカルチェック時にはパス指定をfile:///c:/~としておきます。
 動作確認後、テキストエディタの一括置換を用いて、パスをhttp://~に
 すべて置換してからアップしてはいかがでしょう?

こんなふうではダメでしょうか?

この回答への補足

WebDeveloperという開発向けプラグインが便利で、Firefoxを使っていたのですが、試しにIEでやったところ、/で始まる絶対パス指定で「file:///c:/index.html」となり、問題はなさそうです。

でも、やはり基本的に確認はFirefoxで行いたい(IEは最後の最後、表示チェックだけ)ので、引き続きお願いいたします。

補足日時:2006/04/11 18:27
    • good
    • 0
この回答へのお礼

ご回答有難うございます。

自分で作っている小規模サイトなので、とくに/で始まる絶対パスでないとダメという訳でもないのですが・・・。
大規模サイトでは、階層も多く深さも様々なページが大量にあり、cssや共通画像は必ず/で始まる絶対パス指定になっています。そうしないと管理し切れなかったり、リンクミスが発生するためです。
一応、仕事のほうでも大規模なサイトに少しだけ関わっているのですが、そこもグローバルナビやロゴなどの画像、JSファイル、CSSファイルなどは全て/で始まる絶対パスです。

管理をラクに、というのが一番の目的です。

やはり、ローカル環境用のソースで、アップ時に一括置換などで対応するしかないんでしょうか?

お礼日時:2006/04/11 18:24

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!