キャッシュコントロールヘッダーを出力するために、ドットネットコアミドルウェアを設定しました。すべての静的コンテンツをキャッシュすることを検討していますが、特にいくつかの.pngファイルをキャッシュします。 キャッシュヘッダーはが出力されていませんか?私はdotnet core 1.1.1を使用しています。dotnet core設定キャッシュコントロールは効果がありません
public void Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory)
{
loggerFactory.AddConsole(this.Configuration.GetSection("Logging"));
loggerFactory.AddDebug();
app.UseStaticFiles(new StaticFileOptions
{
OnPrepareResponse = _ =>
{
var headers = _.Context.Request.GetTypedHeaders();
headers.CacheControl = new CacheControlHeaderValue
{
MaxAge = TimeSpan.FromHours(12)
};
}
});
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseBrowserLink();
}
else
{
app.UseExceptionHandler("/Home/Error");
}
app.UseIdentity();
// Add external authentication middleware below. To configure them please see http://go.microsoft.com/fwlink/?LinkID=532715
app.UseMvc(routes =>
{
routes.MapRoute(
"default",
"{controller=Site}/{action=Site}/{id?}");
});
}
コードは次のスクリーンショットで示されているように無視されています。
Iはまた、明示的にこのようなヘッダを追加しようとしているが、私は、ヘッダを示すエラーが既に存在し得ます。
app.UseStaticFiles(new StaticFileOptions
{
OnPrepareResponse = _ =>
{
_.Context.Request.Headers.Add("Cache-Control", "public,max-age=60");
}
});
何とか食べてしまいます。ブレークポイントを設定すると、コードが呼び出されます。
強制的にリロードしましたか?それは "ディスクキャッシュ"と思われるので、もし情報が論理的であるならば、この場合サーバに尋ねることさえなかっただろう。 –
はい、私はスクリーンショットを新しいものに置き換えました。私はまた、それをチェックしている、何とかそれは設定されていません。私はライブサイトを 'www.webpagetest.org'でテストしました。これはヘッダーが設定されていないことを示しています。 – Jim
あなたは応答ヘッダーに追加する必要があります。 – levent