-1

(質問を正しく組み立てることができず申し訳ありません。)

次にシナリオです。

私は2つのHtmlファイルを持っています。

File1.Html は

<a href="File2.html">Click Me</a>

File2.Html は

<a href="File1.html">Click Me</a>

ブラウザで次のように入力して、ブラウザで file1.html を開くと、

http://Localhost/File1.html

リンク付きの file1.html が表示され、クリックすると次の場所に移動します

http://Localhost/File2.html

しかし

ブラウザで次のように入力して、ブラウザでfile1.htmlを開くと(最後の/に注意してください)。

http://Localhost/File1.html/

リンク付きの file1.html が表示され、クリックすると次の場所に移動します

http://Localhost/File1.html/File2.html

これがブラウザーで行う正しい方法ではないことはわかっていますが、ユーザーがそうするのを止めることはできません。

上記の例は、問題を単純化するために使用したものです。私の実際の生産上の問題は、MVC URL を使用しているときに実際にルーティングされることです。したがって、ユーザーは合法的にhttp://example.com/Employeeまたはhttp://example.com/Employee/を使用できます。このため、私の jqGrid は機能していません。

回避策を教えてください。

更新: これは IExplorer で正常に動作します: wierd。

4

3 に答える 3

2

rootに対する相対リンクが必要です。以下:

<a href="/File1.html">Click Me</a>

(href の先頭にある '/' に注意してください) は、リンクを含むページがどこにあっても (同じホスト上にある限り) http://Localhost/File1.htmlにリンクします。

于 2009-09-14T12:05:04.827 に答える
0

あなたの質問は、PHP で実装された、検索しやすい URL の手法を思い出させます。

次のようなもの:

http://localhost/index.php/2009/09/

これはSitepoint.comで説明されていました。このアイデアは、index.php が Web サーバーから URL の末尾部分を取得し、それをどう処理するかを決定できるというものでした。最終的な / を処理するかどうかを含めます。

これは html ファイルには関係ありませんが(結局、URL の末尾部分を取得できませんでした)、さらなるアイデアが得られる可能性があります。

于 2009-09-14T12:53:04.917 に答える
0

ルートに対して相対的ではなく、親に対して相対的に必要です

それは可能ではありません。ルーティングされた URI を使用している場合、ベース名の後にあらゆる種類の /path/segments が存在する可能性があります。ブラウザは、本当の「親」が何であるかを知る方法がありません。

通常の解決策は、Joe が提案するルート相対 URI を使用することです。アプリケーションをルートの下の構成可能なプレフィックスにマウントできるようにする必要がある場合は、そのプレフィックスをリンクにコピーする必要があります。

于 2009-09-14T12:46:38.953 に答える