ASP.NET/IISの相対パスと絶対パス

asp.net iis path
ASP.NET/IISの相対パスと絶対パス

相対/絶対パスについての記事をたくさん読みましたが、まだこの問題を理解することはできません。

次のコードは、ASP.NETの「マスター」ページからのものです。

Reports


            One


            Two

(1つのリンクには `〜`があり、もう1つにはないことに注意してください。)

サイトを実行するとき、最初のリンクは http:// server / Reports / One.aspx`を指し、2番目のリンクは http://server/company/project/Reports/~/Reports/Two.aspxを指します`。

IISに設定されている仮想ディレクトリを無視せずに、ASP.NETプロジェクトのルートに到達するにはどうすればよいですか?

  5  1


ベストアンサー

`runat =” server “`属性をアンカータグに追加します。 HTMLタグで〜ルート演算子を使用することはできません。 サーバーコントロール(HtmlまたはWeb)のみが使用できます。

Two

12


生成されたIDを持つサーバーコントロールにしたくない場合は、すべてのファイルに `Page.ResovleUrl`を使用します。

Two

12


相対パスは現在のリソースに相対的なので、表示している場合

http:// yourhost / app / default.aspx

reports / one.aspx`の相対パスは http:// yourhost / app / reports / one.aspx`になります。 相対パスに先頭の `/`がないことに注意してください。 それが相対的なものです。

おそらく推測できるように、絶対パスは「/」で始まり、現在のリソースのホスト名を使用するため、「http://yourhost/reports/one.aspx」になります。

〜はニシンです。 これは、http://en.wikipedia.org/wiki/.NET_Framework [.NET]専用の追加機能であり、ASP.NETのさまざまな部分で使用され、現在のアプリケーションルートを基にパスを作成します。 したがって、アプリケーションのルートが「http:// yourhost / app」の場合、「http://yourhost/app/views/default.aspx」を表示していたため、.NETにパス「〜/ reports / one」を要求しました。 aspx ‘の場合、 `http:// yourhost / app / reports / one.aspx`が与えられます。

〜は、HTML、IIS、またはURLでは使用されないため、ブラウザで表示される場合は、そのまま使用されます。

注意:一部のUnixサーバーは、ユーザーのホームディレクトリにマップするために `〜`を使用できますが、それは単に複雑なことです。

6


_http://www.codeproject.com/KB/aspnet/AspnetPaths.aspx [ASP.NET初心者向けの「パス」について何かあります] _をお読みください。 ASP.NETアプリケーションの「パス」に関する完全なアイデアを提供します。

1


タイトルとURLをコピーしました