• ベストアンサー

ローカルでのhtmlチェックについて(絶対パス指定)

しょうもない質問ですみません。 絶対パス指定を基本としたウェブサイトを構築しようとしているのですが、ローカルの環境ではチェックがままなりません。 リンクや画像の指定に、「./」や「../」を使わず、 「/~.html」などとしたいのです。 でも、ローカル(この場合、WinXP)ではディスクの直下にファイルを保存しても、 file:///c:/index.html (cドライブの場合)となってしまい、絶対パスで「/index.html」と指定した際に、ローカル環境でリンクされる「file:///index.html」と違ってきてしまい、うまいこと製作が進みません。 この場合、どうしたら簡単にローカル環境にサーバーと同様の環境を再現できるのでしょうか?

  • HTML
  • 回答数6
  • ありがとう数9

質問者が選んだベストアンサー

  • ベストアンサー
  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.6

私もオフトピで。 >>そこまで巨大なサイトを作らないので。 >小規模サイトなら相対パスで十分ということですね。 ちょっと理由があんまり正しくありませんでした。(というか適当に書きました。すいません) 小規模でも絶対パスのほうが有用なのかもしれません。 相対パスを使う理由としては、絶対パスはサーバによって違う場合があるから。 特にレンタルサイトなんかを使っていると違う場合が多かったです。(何年も前の事です。最近の事情は知りません。) 引っ越すとトップからの絶対パスが違うがためにリンクを全て書き直すなんて手間がかかります。(一括置換って手もあるけど、頻繁にやらない作業ってのは危なっかしいし) そんなわけで企業付きのサイト構築をする業界人は別として多くの個人サイト製作者は相対パスを使います。 また、絶対パスを知らなかったりURLと混同している場合も多いようです。 あと、個人的にはCGIの配布なんかやっているので絶対パスはご法度だったりします。

wba013
質問者

お礼

ご回答有難うございます。 なるほど、言われてみれば確かにそうですね。 現状の環境にしか目が行っていませんでしたが、サーバーによっていろいろな環境があることは想定していませんでした。ルートから違ったりするとややこしそうですね。 現状の環境のみを見ると、絶対パスのほうが有用であることは間違いないのですが、トータルで考えると疑問に思えてきました。

その他の回答 (5)

noname#19206
noname#19206
回答No.5

アドバイスって言うかオフトピです。 >WebDeveloperという開発向けプラグインが便利で、 一応Firefoxに機能を追加するものとしてのプラグインという表現は間違いということになります。「拡張機能」が正です。 http://www.mozilla.gr.jp/news/topics/viewonetopic.php?topic=headline&num=5 あと、同じ場所からIE向けのWeb開発ツールも出ているのでそちらも利用されると便利ではないでしょうか?

wba013
質問者

お礼

ご回答有難うございます。 やはり、WebDeveloperは、いちど使うと手放せない「拡張機能」なので、こちら重視でやっていこうと思います。 (個人的に、IEというかMSの作るアプリがキライという事も多分に影響していると思いますが)

  • steel_gray
  • ベストアンサー率66% (1052/1578)
回答No.4

サーバソフト(AnHTTPdやApach)をインストール/起動して、PCをサーバ化すればよいかと。 「自宅 サーバ」とかで検索すると情報が得られると思います。 CGIのテストなどではよく使われます。 ただしCGIを動作させる事が目的であって絶対パスはあまり(というか全く)使いませんね。 そこまで巨大なサイトを作らないので。

wba013
質問者

お礼

ご回答有難うございます。 やはり、その領域に足を踏み入れないとならなくなりますね。もしかしてサーバーを立てずに何か擬似的に再現できる方法がないかと探していたのですが、やはりムリそうです。 >そこまで巨大なサイトを作らないので。 おっしゃるとおりです。小規模サイトなら相対パスで十分ということですね。

  • NTJ
  • ベストアンサー率44% (46/103)
回答No.3

まさに、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> ・・・どうでしょ?これで解決できませんか?(笑

wba013
質問者

お礼

ご回答有難うございます。 うわぁ、、、JS化ですか! たしかに、コレなら解消しそうですが・・・。 なかなか容易にはいかないようですね。

noname#16771
noname#16771
回答No.2

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

wba013
質問者

お礼

ご回答有難うございます。 絶対パスって、そんなにニーズ低いんでしょうか・・・。 jsやcss、imgなど、外部ファイルの呼び出しが多ければ多いほど、ディレクトリが多ければ多いほど、絶対パスでの記述のメリットって大きいと思うんですが・・・。

回答No.1

 なぜ絶対パスにこだわられるのかわかりませんが、ローカルでチェックするために思いつく手法としては、 ・<base href=~>を利用する。  あらかじめ、baseでリンク先のURL(ローカルではパス)を指定しておきます。  ファイルを指定する場合は、相対指定と同じ書き方になりますが、  意味合い的には絶対指定です。  ローカルでチェック後、baseのURLを書き換えてアップします。  http://www.tohoho-web.com/html/base.htm ・テキストエディタで一括置換  とりあえずローカルチェック時にはパス指定をfile:///c:/~としておきます。  動作確認後、テキストエディタの一括置換を用いて、パスをhttp://~に  すべて置換してからアップしてはいかがでしょう? こんなふうではダメでしょうか?

wba013
質問者

お礼

ご回答有難うございます。 自分で作っている小規模サイトなので、とくに/で始まる絶対パスでないとダメという訳でもないのですが・・・。 大規模サイトでは、階層も多く深さも様々なページが大量にあり、cssや共通画像は必ず/で始まる絶対パス指定になっています。そうしないと管理し切れなかったり、リンクミスが発生するためです。 一応、仕事のほうでも大規模なサイトに少しだけ関わっているのですが、そこもグローバルナビやロゴなどの画像、JSファイル、CSSファイルなどは全て/で始まる絶対パスです。 管理をラクに、というのが一番の目的です。 やはり、ローカル環境用のソースで、アップ時に一括置換などで対応するしかないんでしょうか?

wba013
質問者

補足

WebDeveloperという開発向けプラグインが便利で、Firefoxを使っていたのですが、試しにIEでやったところ、/で始まる絶対パス指定で「file:///c:/index.html」となり、問題はなさそうです。 でも、やはり基本的に確認はFirefoxで行いたい(IEは最後の最後、表示チェックだけ)ので、引き続きお願いいたします。

関連するQ&A

  • ローカル環境内での絶対パス?

    こんにちは。 いつもお世話になっております。 すごい初歩的な質問でお恥ずかしいのですが ご指導頂けないでしょうか。 今、Apacheを使って、自宅のパソコン内で CGIの勉強用にローカルサーバを使用しています。 Cドライブから見たパスが下記で C:/Program Files/Apache Group/Apache2/htdocs/protect/menber/hoge.cgi IEなどで動作確認する時に打ち込むURLは http://localhost/protect/menber/hoge.cgi となる場合、 menber フォルダ内にある kame.cgi からみた hoge.cgi への絶対パスとは、どういった記述に するのが正しいのでしょうか? 環境は、 Apache2 Perl5 Win XP です。 どうかよろしくお願い申し上げます。

    • ベストアンサー
    • CGI
  • CSSを絶対パスで指定して本当にいいのか?

    質問させて下さい。 CSSを使用しているのですが、今までは相対パスで指定していたのですが、管理の都合上「絶対パスがイイな」と思い始めました。 例:<link href="http://hogehoge.com/css/sample.css" rel="stylesheet" type="text/css"> この様に指定してみました。でも、本当に絶対パスで良いのかなと思い、ググってみたのですがどちらでも良いような旨の記述を多く見かけました。 皆様は、どう思われますでしょうか? また、もう一点質問があります。 http://www.nikolaschka.com/log/2007/08/apache_alias.html 上記サイトにて以下の記述がありました。 <link rel="stylesheet" href="/style.css" type="text/css" />→絶対パス 何故、スラッシュで始まるパスが絶対パスなのでしょうか?ご教示頂ければと思います。 よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • URLの相対指定について

    いま、BASEタグを使ってURLを相対指定して、簡略化をしているHTML文書があります。 このHTML内で、もう一つ別の相対指定の基準を指定する方法はあるのでしょうか? リンクの位置関係は簡単に書くと下のようになってます。 Web Site +-HTML文書 +-リンク先のファイル(複数) Local +-リンク先のファイル(多数) Localのリンク先のファイルが多数あるので、 いちいち<A href="file:///.....と書くのがいやなので、 BASEタグによる基準をLocalのフォルダにしています。 しかし、こうするとWeb Site上へのリンクはいちいち、 <A href="http://.....と絶対指定しなければなりません。 これを回避したいのです。

  • FTPでダウンロードするときのパス指定

    リモートからダウンロードするときにパス指定をしてローカルにファイルをゲットしてきたいのですが、getするとき、パス指定の方法がわかりません。 もし、無理なようならダウンロード後に use File::Copy; のmoveを使って指定パスに移動してもよいのですが、指定方法がわかりません。 よろしくおねがいします。

    • ベストアンサー
    • Perl
  • 指定フォルダの絶対パス取得

    初歩的なことですが教えてください。 VB.netにて、指定したフォルダの相対パスに対する絶対パスの取得を行いたいのですが、良い方法が見つかりません。 「Path.GetFullPath メソッド」を使用して見ましたが、存在しないパス「例:\A\」を指定すると、勝手に「例:C:\A\」のように絶対パスが割り付けられてしまいます。実際に存在するパスを検索して取得することは出来ないのでしょうか? 例:「ABC」というフォルダが「C:\program files」や「D:\」などに存在するという結果です。

  • 相対パスから絶対パスへ返還したい

    file:///C:/My%20Documents/IMG_1273-bbbb.jpg 以上のバナーをつくりました。リンク先はJPG画像でもよいということです。 が、この画像を右クリックしてプロパティを見ると、上記のような相対パスで表示されます。 コレを絶対パスに変換する方法はありませんか? 当方かなり知識不足ですので、できるだけ平易にお願いしたいです。

  • ホームページビルダー11でのリンクの設定・・・ローカルファイルへのパスになってしまいます。

    基本的な質問で申し訳ありませんが、どなたかお教え下さい。 ホームページビルダー11を使用しているのですが、 リンクの設定をする際、属性→リンク→ファイルへ→ファイル名参照 の手順で設定をすると、 リンク先のパスが、ローカルのファイルへのパス(file:///C:/Documents and Settings/.......)になってしまい、 相対パスで設定することができません。そのため、現在、その都度相対パスに設定しなおしている状態です。 環境設定等も確認したのですが、それらしい項目が見つけることができませんでした。 相対パスで設定できるようにする方法をご存知でしたら、お教え下さい。 よろしくお願いいたします。

  • Tomcatサーバー側が絶対パスを認識されず

    JSPのInput欄にローカルの絶対パスを入れて、ボタン押下後に指定されたファイルを分析するという画面があります。※アップロード処理はしない。 問題は、 ローカルでITテストする時はうまく動作しましたが、 サーバーに上げてローカルで操作したら、絶対パスのファイルは見つからなくなります。 こういう場合はどのように対処すればよいのでしょうか。 ありがとうございます。 環境:Tomcat7+Windows7+Java7

    • ベストアンサー
    • Java
  • (GCCコンパイラ)動的リンクを絶対パスで埋め込みたい

    Unix系のOSで 動的リンクを絶対パスで指定したいのですができますか? できる場合は、その方法を教えてください ※LD_LIBRARY_PATHを使う方法ではありません。 ※また、ソースを埋め込む静的リンクでもありません。 絶対パス(フルパス)で指定したいです 現在 gcc -Iインクルードパス -Lライブラリパス名 -lライブラリ名1 ... -o ソースコード ソースコード.cpp このように書いているので あと追加でどのように指定すると絶対パス(フルパス)で埋め込めるでしょうか? できれば、ライブラリ名1だけフルパスで埋め込みたいです。 よろしくお願いします

  • include時の頭の良いパス指定について

    include時の頭の良いパス指定について 長い上に少々わかりにくい話ですが、includeする場合のパスについてです。 現在の構成は次のとおりです。 / ├inc/ │ ├file_a.class.php │ ├file_b.class.php │ ├file_c.class.php │ │ │ └require/ │   └require.php ├dir/ │└index.php │ └index.php 【/index.phpの中身】 <?php  require_once "./inc/require/require.php";  //その後いろいろ処理 ?> 【/inc/require/require.phpの中身】 <?php  require_once "./inc/file_a.class.php";  require_once "./inc/file_b.class.php";  require_once "./inc/file_c.class.php"; ?> 今回後付で、「/dir/index.php」を設置しました。 「/index.php」とほぼ処理は共通なので、「/dir/index.php」を次のように書いています。 【/index.phpの中身】 <?php  require_once "../index.php"; ?> しかし、この場合「/dir」以下からは、incまでの階層が異なるため、includeしても、 各クラスのファイルを読み込むことができず、 No such file or directory in require.php on line 2 のエラーが表示されてしまいます。 こういう場合、どういうパス指定をするのがいいのでしょうか。

    • ベストアンサー
    • PHP

専門家に質問してみよう