1.静的ファイル
MVCは、ファイルは、ファイルの下(Configureメソッドでapp.UseStaticFiles())、すなわち、wwwrootのディレクトリ(で、ルートディレクトリを)ミドルウェア、デフォルトの静的で有効になっ例えば、アクセスすることができます。http:// localhost:5000 / IMG / 001.pngコメントapp.UseStaticFilesは、wwwrootディレクトリの下にファイルが直接アクセスすることはできません場合は、:(MyStaticFilesなど)別のディレクトリにある静的ファイルにアクセスすることができません。
2. wwwrootディレクトリ外の静的ファイルへのアクセス
新しいフォルダの画像やその他の静的ファイルを格納するプロジェクトディレクトリ内(MyStaticFiles)を作成し、この時間はアクセスできない、いくつかの設定は、アクセスに必要です。
StaticFileOptionsクラスの着信app.UseStaticFiles()、2つのパラメータFileProviderディレクトリに移動し、RequestPathは、 "/ AAA" の設定として、相対パスに配置され、それがすることができます。http:// localhost:5000 / AAA / IMG / 002.png、お薦めや同じディレクトリ名の前に位置し、例えば "/ MyStaticFiles"、通じます。http:// localhost:5000 / MyStaticFiles / IMG / 002.png
1 app.UseStaticFiles(新しいStaticFileOptions 2 { 3 FileProvider =新しいPhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory()、 "MyStaticFiles"))、 4 //設定相対パス(名前から前回の勧告と同じ、当然のことながら、他を再生することができ、注意がフロント/でなければなりません) 5 RequestPath = "/ MyStaticFiles" 6})。
3.静的ファイルキャッシュを設定します
で:ctx.Context.Response.Headers.Append( "のCache-Control"、$ "公共、最大エージング= 600");テストアクセスページでは600秒に設定さは、http:// localhostを:5000 /秒、イメージがロードされる最初の時間は、この時間は、あなたのキャッシュ内の役割を果たした写真が、ありますが、ページを更新し、画像を削除して行きます。
1つの//設定された静的ファイルキャッシュは600秒、すなわち、10分です 2 app.UseStaticFiles(新しいStaticFileOptions 3 { 4 OnPrepareResponse = CTX => 5 { 6 ctx.Context.Response.Headers.Append( "のCache-Control"、$ "公共、最大エージング= 600"); 7 } 8})。
1の<div> 2 <IMG SRC = "〜/ MyStaticFiles / IMG / 002.png" /> 3 </ div>
4.静的ファイルの承認
静的にはミドルウェアが承認チェックを提供していないファイル。 wwwrootの下にあるファイルを含むミドルウェアの静的ファイル、によって提供される任意の公的にアクセス可能なドキュメント。 認可を提供した文書によると:
①:任意のディレクトリファイルからwwwrootのに保存され、静的なファイルがアクセス可能ミドルウェアされています。
②:操作の権限の方法で文書を提供し、FileResultオブジェクトを返します。
1 [承認] 2公共IActionResult BannerImage() 3 { 4 varファイル= Path.Combine(Directory.GetCurrentDirectory()、 5 "MyStaticFiles"、 "画像"、 "banner1.svg")。 6 7リターンPhysicalFile(ファイル、 "画像/ SVG + XML")。 8}
ディレクトリの参照を有効にする5.
ConfigureServices登録サービスで:services.AddDirectoryBrowser();設定にwwwrootの下のフォルダIMGファイル用のディレクトリの参照を有効に、相対パスは「/ IMG」に設定され、その後、それは、httpことができます:// localhostを:5000 / IMG /ディレクトリを参照し、ファイルを開きます。
1公共のボイドConfigureServices(IServiceCollectionサービス) 2 { 3 services.Configure <CookiePolicyOptions>(オプション=> 4 { 5 //このラムダは非本質的なクッキーのためのユーザーの同意が与えられた要求のために必要とされているかどうかを決定します。 6 options.CheckConsentNeeded =コンテキスト=>真。 7 = options.MinimumSameSitePolicyのSi TEのMo de.Noneにおいて、 8})。 9 services.AddMvc()SetCompatibilityVersion(CompatibilityVersion.Version_2_2)。 10 //ディレクトリの参照を有効にします 11 services.AddDirectoryBrowser(); 12} 13公共の無効設定(IApplicationBuilderアプリ、IHostingEnvironment ENV) 14 { 15 //ディレクトリの参照を有効にします 16 app.UseDirectoryBrowser(新しいDirectoryBrowserOptions 17 { 18 FileProvider =新しいPhysicalFileProvider(Path.Combine(Directory.GetCurrentDirectory()、 "wwwrootの"、 "IMG"))、 19 RequestPath = "/ IMG" 20}); 21}
デフォルトのファイルを有効にする6.
デフォルトファイルを提供するには、UseStaticFiles前UseDefaultFilesを呼び出す必要があります。UseDefaultFilesは、実際にファイルを提供しない、URLを書き換えるために使用され、ファイルは静的ファイルミドルウェアUseStaticFilesを提供するために有効にする必要があります。
default.htmへ→default.htmlの→index.htmを→index.htmlを、およびwwwrootディレクトリに配置する必要があります。デフォルトのファイルアクセス順序があります
デフォルトのファイル名を設定する方法例えば、指定:? MyDefault.htmlを
A:クラスはDefaultFilesOptionsによって達成されます
1 //デフォルトのファイル(デフォルト名)を有効にします 2 //app.UseDefaultFiles()。 3 4 //(名前を指定)デフォルトのファイルを有効にします 5 DefaultFilesOptionsオプション=新しいDefaultFilesOptions()。 6 options.DefaultFileNames.Clear()。 7 options.DefaultFileNames.Add( "myDefault.html")。 8 app.UseDefaultFiles(オプション)。 9 10 //、wwwrootディレクトリにルートディレクトリを行動 11 app.UseStaticFiles();
結果:
7. UseFileServer:静的ファイルは、デフォルトのファイル、ディレクトリの参照を有効にします
静的ファイルとデフォルトファイルを提供// 1は、ディレクトリの参照が有効になっていません。 2 app.UseFileServer()。 3 ディレクトリを有効にすることによって構築さ4 //ブラウザベースの引数のオーバーロードしません 5 //app.UseFileServer(enableDirectoryBrowsing:真); 6 7 //静的ファイルは、デフォルトのファイルとディレクトリブラウジングやMyStaticFilesを有効にします 8 //app.UseStaticFiles(); 9 //app.UseFileServer(new FileServerOptions 10 //{ 11 // FileProvider = new PhysicalFileProvider( 12 // Path.Combine(Directory.GetCurrentDirectory(), "MyStaticFiles")), 13 // RequestPath = "/MyStaticFiles", 14 // EnableDirectoryBrowsing = true 15 //});