1

変更中の HTML コードで、このフォームの背景画像参照を見つけました。

<a style="background: url('/~/media/Images/Shared/Logos/logo.png')" href="/">Home</a>

原作者に聞く立場ではないですし、チルダがここでどう評価されているのかわかりません。

URL 文字列が "url('~/media/.....'" で始まる場合、メディア ユーザーのルートになることは理解しています (そのため、すべての展開サーバーでそのユーザーを作成することをお勧めします)。 / チルダの前で混乱します。

私が行ったすべての検索では、ホーム ディレクトリの説明が返されただけですが、そうではないようです。

[編集] これはライブ サイトの一部です。ロゴは正しく表示されます。理由はわかりません。

[編集 2] このサイトは ASP.NET を使用して構築されています。

[編集 3] 上記は、ASP コードではなく、サイトのビュー/ソースからの URL のクリーン バージョンです。

[編集 4] 興味のある方のために、実際に動作する URL を次に示します。私は同じ会社で働いていますが、部門は異なります。Java EE で内部サポート ツールを構築しており、スタイルの一部を借用しています。「/~/....」を見て、それが機能する正当な理由が思いつきませんでした。

http://business.hibu.co.uk/~/media/Images/Shared/Logos/logo.png
4

2 に答える 2

3

ASP.NET では、チルダはアプリケーションのルートを表します (必ずしも Web サイトのルートとは限りません)。ただし、特定の状況でのみ使用できます (サーバー コントロール、データ バインドされたコントロール、または場合によっては head セクションのタグscriptや などlink)。

通常の本文のaタグでは処理できないと思いますし、ASP.NET ではチルダが文字列の先頭以外の場所に移動することは許可されていないと思います。

したがって、実際には という名前の物理ディレクトリがあるだけだと思います~。Windows では、チルダに特別な意味はないと思います。そのため、ユーザーのホーム ディレクトリなどではなく、通常のディレクトリの風変わりな名前です。

編集

~これがブラウザでレンダリングされる方法であり、機能しているというコメントを読んだ後、Webサーバーに呼び出される実際のディレクトリがあることはほぼ確実です. それか、なんらかの URL 書き換えが行われているため、それを確認するには web.config または IIS の設定を確認する必要があります。

于 2013-04-17T17:11:34.563 に答える