画像 URL プロパティを App_Data フォルダーにある asp 画像コントロールに設定すると、画像はページ デザイン ビューに表示されますが、ブラウザーには表示されません。
<form id="form1" runat="server">
<div>
<asp:Image ID="Image1" runat="server" ImageUrl="~/App_Data/p3.jpg" />
</div>
</form>
わかりやすいようですが、画像が表示されていません。
The App_Data
folder is a special folder reserved for data such as database files and so on, and will NOT render out any contents on the web. This is by design, and intentional and cannot be changed (as far as I know).
Your images do definitely not belong into the App_Data
subfolder - put them into a /images
folder or something more appropriate.
App_Data
画像はフォルダに保存しないでください。これは、.mdb データベース ファイルなど、ユーザーに直接提供してはならないファイル用に予約されています。
サイトのルートから/Resources
orフォルダーを作成します。/Resources/Images
同意しません。App_Data フォルダーに画像を隠し、独自の http ハンドラーを作成する場合、画像を保護し、表示する前に画像に著作権テキストなどを追加できます。
誰もが手に入れたくない高解像度の写真があり、http-handler で画像を縮小して著作権テキストを入れるときにこれを行います。すごい!
さて、不可能なことをする時が来ました... app_data フォルダーから直接画像をロードすることはできませんが、app_data フォルダーから画像ファイルを読み取ってクライアントに送り返す独自の http ハンドラーを作成できます。これは回避策ですが、一般に、データはアプリケーションのみが読み取ることができるデータを対象としています。ハンドラーにデータを読み取らせることで、それらの画像を返すことができます。
しかし、それは悪い習慣であり、もしあなたが私のために働いていたら、あなたはすぐにクビになるでしょう!!!
App_Data フォルダーのコンテンツは提供できますが、直接提供することはできません。
直接アクセスは不可能であり、間接アクセスは推奨されません。意図的なものです。
ただし、仮想パスを追加するとこれが可能になります。この質問を参照してください
上位 3 つの回答が目的にかなっていると思います。
イメージをグローバルまたはローカルのリソース フォルダーに保存します。これらは特別なフォルダーでもあり、プログラムでコンテンツにアクセスできます。