1

すべてのディレクトリから等しく有効なルートへの相対パスを作成することは可能ですか?

異なるディレクトリ レベルにいくつかのドキュメントがあり、他のディレクトリからロードすると、相対パスが無効になります。

したがって、テキスト/html を相対パスでデータベースに保存すると、一部のページでは機能しません。

相対パスの例:

../imgs/my_image.png

次に、サイトを開発するときに完全なパスを保存すると、新しい方向に移動するたびに、またはローカルホストから実際の運用ドメインに移動するたびに、埋め込まれたすべての画像 (db から text/html として取得される) も機能しなくなります。 .

絶対パスの例:

127.0.0.1/imgs/my_image.png

問題は、正確なホスト名を指定せずに...pseudocode: %root%/imgs/my_image.pngまたはそれを解決する他の方法で可能ですか?

(つまり、正規表現を使用してパスを置き換えたり、追加のテーブルを作成して写真を保存したり、すべてのページを 1 つのディレクトリに移動したりするなど、これらのパスのサーバー処理を追加せずに、CMS サイトで相対パスを操作する必要があります。)

それは正直私を悩ませ、必要なたびに追加の処理とレコードの更新以外に何も考えられませんでした。でも、たまたま見つけたものを寄稿したいと思います。

Chrome や IE などの最新のブラウザーでは機能しましたが、これが正しいコードであるかどうかはまったく疑問です。ただし、ルートへの最高レベルの相対パスを使用すると、たまたま下位レベルでも機能しました。

たとえば、このようなページが127.0.0.1/auth/profile/content/index.phpあり、イメージ パスが127.0.0.1/imgs/my_image.pngであるとします。次のコードは、たとえば のような下位レベルのページ 127.0.0.1/auth/prof.phpや、ルート ページ自体でも機能します127.0.0.1/index.php

../../../my_image.png

論理的には、ルート フォルダー内のページに下位レベルはありません。それで、それが正しいか間違っているか、そしてそれを本番環境で使用する必要があるかどうかについて、もう少し知りたいです...

4

2 に答える 2

2

そのドメインの下の任意のページから Web サイトのルートを指すには、次を使用します。/

そう

http://www.example.com/pages/page.html->/pages/page.html

http://www.example.com->/

http://www.example.com/a/b/c/d/e/f.png->/a/b/c/d/e/f.png

于 2012-08-23T04:37:15.530 に答える
1

を使用するだけ/です。それはうまく機能し、明らかです。

たとえば、css で画像を使用したい場合images、アプリケーションのルートにというフォルダーがある場合は、 url(/images/image.png).

于 2012-08-23T04:38:21.327 に答える