- - PR -
ASP.NETでのWEBサイト構築
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-09-17 15:05
はじめまして。
WEBサイト構築初心者の者です。 今、WEBサイトを作成中なのですが一点つまずいてしまっています。 このサイトのデータの格納方法としてXMLを使用しているのですが、 そのXMLファイルのパスをコード内で指定するときに相対パスで指定したいのですがうまくいきません。 指定方法としては、 ./ASP/***.xml といった形で指定しているのですが、これってどこからの相対パスになるのでしょうか? 自分のイメージではWEBサイトのルートパスが相対パスの元だと思っていたのですが。。。 自分の開発中のWEBサイトのルートパスは C:/WEB開発/work となっているのですが、上記の方法で相対パスを指定すると C:/Program Files/Microsoft Visual Studio 8/Common7/IDE/ASP/***.xml となってしまいます。 これってどこかで設定したりするのでしょうか?? dllの場所がカレントになっているってことですよね?? WEBサイトのルートパスにできないんですかね?? 初心者のため、質問方法が荒いと思いますがご容赦ください。 有識者の方、よろしくお願いいたします。 | ||||
|
投稿日時: 2008-09-17 16:16
ASP.NET では Web サイトの仮想ディレクトリのルートパスを ~ (チルダ) で表すことができます。
# これは、ASP.NET のサーバーコントロール等でのみ有効な記法であり、 # HTML タグや、ASP.NET と無関係の .NET クラスライブラリでは使用できないので注意してください。 例えば、Web サイトのルートディレクトリにある Hoge.xml ファイルは "~/Hoge.xml" と表せます。 Web サイトの URL が "http://localhost/WebSite1" ならば、 これは "http://localhost/WebSite1/Hoge.xml" を示します。 ただし、このままでは物理ディレクトリのパスとしては扱えません。 そのため、HttpServerUtility.MapPath メソッド (System.Web) を使用して、 仮想パスから物理パスに変換します。 このメソッドを使用する場合は、Page クラスの Server プロパティや HttpContext の Server プロパティから辿っていくことができます。
_________________ C#と諸々 | ||||
|
投稿日時: 2008-09-17 18:04
早速の返答ありがとうございます。
"~/Hoge.xml" の存在は知っていましたが、aspファイル内では問題なく使用できるのですが、 僕の場合はロジックを各ファイルを分けているので***.aspxではなく****.csファイルの ほうで相対パスを使いたいのですが"~/Hoge.xml"のような記載ではWEBサイトのルートディレクトリが取ってくれなくて困っていたのです。 IISの設定で仮想ディレクトリを再設定してご指摘いただいた方法 >ただし、このままでは物理ディレクトリのパスとしては扱えません。 >そのため、HttpServerUtility.MapPath メソッド (System.Web) を使用して、 >仮想パスから物理パスに変換します。 >このメソッドを使用する場合は、Page クラスの Server プロパティや HttpContext の >Server プロパティから辿っていくことができます。 でやったらうまくいきました。 ありがとうございました。非常に助かりました。 勉強になります。また質問するとは思いますがその節にはまたよろしくお願いいたします。 教えて君を早く卒業したいです。。。 |
1