-1

私のプロジェクトの機能では、リンクを設定する必要があるときのようなものです:

/site/sales/sold.php

menu.php ファイルのリンクは次のようになります。

 <ul>
      <li><a href="sales/">Sales</a></li>   
      <li><a href="sold.php">Sold Items</a></li>
    </ul>

それは時々に向けるでしょう

/site/sales/sold.php 

次の瞬間、メニューのディレクトリを次のように繰り返します。

/site/sales/sales/sold.php

だから私は販売ディレクトリを削除しました.

/site/sold.php

これは存在しないため、404 になります。

4

2 に答える 2

0

ページにいて、ページsales/にリンクしている場合sales、リンクは次のようになりますsales/sales/– これが定義された動作です。

これを回避するデフォルトの方法は、HTML<base>タグを使用してベース URL を指定することです。ここには PHP、JS、CSS は関係ありません。古き良き HTML 2.0 だけです。

<base href="http://www.example.com/site/">

これをページ ヘッドで使用すると、指定された URL がページ上のすべてのリンクのベースとして定義されます。したがって、リンクをクリックsales/すると実際には次のような結果にhttp://www.example.com/site/sales/なります。

参照: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/base

于 2013-10-10T09:59:15.710 に答える
0

絶対リンクを使用しないのはなぜですか? それとも URL 書き換え?

「sold.php」のような相対リンクを使用する唯一の方法は、メニューが /sales ディレクトリ内でのみ発生する場合です。たとえば、/site のページ内でこのメニューが表示された場合、/site/sold.php の下に "sold.php" というファイルがおそらく存在しないため、もちろん機能しません。したがって、確認したくない場合は、「販売済み」リンクが常に正しい方向を指している場合は、/site/sales/sold.php のようなリンクを使用してください。そうすれば、/site の中にいるのか、/site/sales の中にいるのかは問題になりません。

if i for example set my menu link to direct to: /site/sales/sold.php so the menu.php file link would look like this:

<li><a href="sales/">Sales</a></li>
<ul>
<li><a href="sold.php">Sold Items</a></li>
</ul>

これは意味がありません。リンクを /site/sales/sold.php に向ける場合、リンクは次のようになります。<li><a href="/site/sales/sold.php">Sold Items</a></li>

于 2013-10-10T09:54:08.813 に答える