2

[この質問はこの質問に多少関連していますが、答えは異なります...]

私は常に HTML およびスクリプト言語 (PHP/ASP/JSP) で相対パスを使用してすべてを参照してきました。正当化の理由は、「ウェブサイトが変なサブディレクトリにホストされたらどうなるか」に関係していたと思います。しかし、私の同僚が、私たちが取り組んでいる PHP サイトに絶対パスを投げ始めました。最初は愕然としましたが、「なぜだろう?サブディレクトリでホストされることはないだろう」と思いました。今日では、ルートでホストされることは珍しくありません。相対パスを使用して「コーディング」(実際にはマークアップ) する必要はありますか? おそらく今では時代遅れの慣習だと思います。

4

5 に答える 5

6

絶対。コードがどこに行き着くか、または何の目的で使用されるかは決してわかりません。

サイトの新しいバージョンを構築するが、ユーザーの移行を容易にするために、古いバージョンを "/classic" サブディレクトリに移動するとします。サイトが「/new」ディレクトリで新しい再設計のベータ版をホストする場所でも、同じことがよく起こります。

初めて適切に構築するのは面倒なことではありません。いつか感謝するでしょう。

于 2008-12-22T15:15:54.557 に答える
2

まあ、それはおそらく世界の終わりではありませんが、必要のない依存関係を構築しています.

たとえば、テスト ハーネスのサブディレクトリに多数のバージョンを配置したい場合や、サブディレクトリが他の問題 (ルートにあることを主張する他のアプリと組み合わせるなど) を回避するのに役立つ場合は、それを見つけることができます。もっと強く。

確かに、おそらくいつでも他の方法で回避できますが、問題は、今それをしなければならないことです。

于 2008-12-22T15:16:04.807 に答える
1

編集:参照記事の誤った解釈に基づいていたため、冒頭の段落を削除しました。

次の理由から、常に絶対パスを使用します。

インクルード: 1. テンプレート システムを使用する場合、ドキュメントがインクルードを呼び出すときに、ドキュメントが持つディレクトリ構造がわかりません。2. ドキュメントを移動する場合は、インクルードではなく、ドキュメント自体であることが確実です。それが含まれている場合、何が起こっているのかを知っている誰かに移動されています。これに加えて、絶対/相対パスに精通していない人であれば、相対パスよりも絶対パスの方がはるかによく理解できます。

css: (上記の項目と同様) 1. Web Developer で編集する場合、スタイル シートがドキュメントと同じディレクトリにない場合、相対的な背景が消えます。2. 仕様上、何かを「ネット」に置くと、その期間中そこにあるはずです。何か新しいものを作成するときは、新しいフォルダーに作成するか、新しいファイル名で作成し、古いドキュメントはすべてそのままにしておきます。

于 2008-12-22T22:22:12.187 に答える
1

サブディレクトリに移動されるケースはかなり珍しいと思います。より一般的なのは、異なるサーバーでホストされている場合です。「dev.yourcompany.com」でテスト用のサイトを作成し、「www.yourcompany.com」に移動してライブに移行します。その場合、明らかな理由から相対リンクを使用する必要があります。

于 2008-12-22T19:45:54.777 に答える
1

動的に生成されたページを使用している場合は、URL を動的に生成します。たとえば、JSTL では <c:url> を使用します。これにより、将来ページを移動できるようになるだけでなく、URL が適切にエスケープされるようになります (実を言うと、&? を使用してクエリ文字列を作成する頻度は、W3C バリデーターに受け入れてもらいたい場合は、必要がある)。

PHP を使用してページを作成する私の個人的な Web サイトでは、有効な HREF を作成するいくつかのメソッド (insertPageRef()、insertCodeRef() など) を作成しました。その結果、進化するにつれてサイト構造を再編成することを躊躇しません.

于 2008-12-22T15:23:29.597 に答える