Asp.Netコア内の静的ファイル
このセクションでは、HTML、画像、CSS、およびJavaScriptファイルなどの静的ファイルをサポートしているASP.NETコアアプリケーションを作成する方法について説明します。
静的ファイル
- デフォルトでは、Asp.Net Coreアプリケーションは、静的なファイルを提供しません。
- デフォルトのディレクトリは静的ファイルで
wwwroot
、このディレクトリはプロジェクトフォルダのルートディレクトリに配置する必要があります。
画像のwwwrootフォルダをコピーして貼り付けます。私たちは、ファイル名がbanner.jpgであることを前提としています。ブラウザからこのファイルにアクセスできるようにするには、パスは次のとおりです。http://{{serverName}}/banner.jpg
私たちは私たちの例では、ローカルコンピュータ上で実行するためのURLは次のようになります。お使いのコンピュータ上のポート番号が異なる場合があります。http://localhost:3290/banner.jpg
。
[マイコンピュータから、その後、トップURLに移動、我々はまだによって処理されているRun()
ミドルウェア方法結果応答を返します。私は絵が表示されませんbanner.jpg
。現在、当社のアプリケーションの要求処理パイプラインで、必要なミドルウェア静的ファイルを提供することができないためです。私たちは、ミドルウェアを使用する必要がありますUseStaticFiles()
。
修正Configure()
方法でコードを、説明するUseStaticFiles()
以下に示すように、我々の出願における中間要求処理パイプラインに加えました。
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
//添加静态文件中间件
app.UseStaticFiles();
app.Run(async (context) =>
{
await context.Response.WriteAsync("Hello World!");
});
}
ではwwwroot
デフォルトのテンプレートを好き対同じ画像、CSS、およびJavaScriptファイルフォルダの分類を提供していない、我々は図のフォルダ階層を参照して、フォルダを区別するために、異なるファイルタイプをお勧めします。
ためには、ブラウザからアクセスできるようにするにはimage1.jpg
、我々がするアドレスを入力してhttp://localhost:49119/images/image1.jpg
結果を取得します。
フォルダwwwrootのファイル外で静的ファイルを提供します
デフォルトでは、UseStaticFiles()
ミドルウェアは、静的なファイルwwwrootフォルダを提供します。必要に応じて、我々はまた、中にできるwwwroot
フォルダの外静的ファイルを提供します。
既定のドキュメントを提供します
ほとんどのプログラムは、ユーザーがプログラムのアドレスにアクセスしたときに、それが表示されている文書の内容をデフォルトのWeb文書を持っています。たとえば、あなたが持っているという名前のdefault.html
ファイルを、そしてあなたは、ユーザーがアプリケーションのルートURLにアクセスすると、それを提供したい、つまり、http://localhost:3290
この時点で、我々は、このアドレスにアクセスを見ている私は、私が使用している参照Run()
生成されたミドルウェアを登録するコールバックメソッドを。しかし、私は、既定のドキュメントの表示されていないdefault.html
コンテンツを。デフォルトのページを提供するために、我々は、要求処理パイプラインのアプリケーションに挿入する必要がありますUseDefaultFiles()中间件
。
//添加默认文件中间件
app.UseDefaultFiles();
//添加静态文件中间件
app.UseStaticFiles();
注意:あなたがしなければならない
UseStaticFiles
登録する前にUseDefaultFiles
、デフォルトのファイルを提供します。UseDefaultFiles
URL書き換えで、実際のドキュメントを提供していません。それはちょうどますURL
、ドキュメントを検索するデフォルトをオーバーライドし、静的ファイルやミドルウェアが提供します。URLアドレスバーの代わりにURLを書き換えるの、まだルートURLです。
以下は、UseDefaultFiles
ミドルウェアのデフォルトは、アドレス情報を検索します
- index.htm 的默认文件
- index.html
- default.htm
- default.html
あなたは、既定のドキュメントとして、例えば52abp.htmlとして他の文書を、使用する場合は、次のコードを使用してこれを行うことができます。
//将52abp.html指定为默认文档
DefaultFilesOptions defaultFilesOptions = new DefaultFilesOptions();
defaultFilesOptions.DefaultFileNames.Clear();
defaultFilesOptions.DefaultFileNames.Add(“52abp.html”);
//添加默认文件中间件
app.UseDefaultFiles(defaultFilesOptions);
//添加静态文件中间件
app.UseStaticFiles();
UseFileServerミドルウェア
UseFileServer
これは、組み合わせたUseStaticFiles,UseDefaultFiles和UseDirectoryBrowser
ミドルウェア機能を。DirectoryBrowserのミドルウェア、ディレクトリブラウジングのためのサポート、およびユーザーが指定したディレクトリ内のファイルを表示することができます。我々は使用することができますミドルウェアUseFileServer交換UseStaticFilesとUseDefaultFilesミドルウェア。
/使用UseFileServer而不是UseDefaultFiles和UseStaticFiles
FileServerOptions fileServerOptions = new FileServerOptions();
fileServerOptions.DefaultFilesOptions.DefaultFileNames.Clear();
fileServerOptions.DefaultFilesOptions.DefaultFileNames.Add(“52abp.html”);
app.UseFileServer(fileServerOptions);
知識ポイントは、ここで注意することは:私たちはミドルウェアを追加使用する必要があり、要求処理パイプラインアプリケーションに追加されます。ほとんどの場合、我々は、USE追加ミドルウェアを拡張し始めメソッドを使用します。例えば:
UseDeveloperExceptionPage()
UseDefaultFiles()
UseStaticFiles()
UseFileServer()
あなたはこれらのミドルウェア・コンポーネントをカスタマイズしたい場合は、彼は、対応する[設定]タブを有することができます。表を参照してください:|ミドルウェア| optionsオブジェクト| | ------------------------- | ------------ ----------------- | | UseDeveloperExceptionPage | DeveloperExceptionPageOptions | | UseDefaultFiles | DefaultFilesOptions | | UseStaticFiles | StaticFileOptions | | UseFileServer | FileServerOptions |
同様の考えている場合:個人的なマイクロ・シグナルを追加へようこそ。
私だけでなく、あなたのための最新のブログをお勧めします、公共の数字の関心を歓迎し、あなたとリソースを待っているより多くの驚きがあります!一緒に、共通の進歩を学びます!