如何防止仅在ASP.Net 5中的某些文件的浏览器缓存?

Whi*_*ler 5 asp.net iis caching asp.net-core

在之前的版本中,我会像这里一样.但是在新版本的ASP中没有web.config文件,我相信它应该在launchSettings.json文件中完成.

基本上我想做的就是停止缓存app.js文件和模板文件夹中的所有.html文件.我该怎么做?

Adr*_*tti 7

请注意,<meta对于您不想缓存的每个页面,您仍然可以在HTML页面中添加>标记:

<meta http-equiv="cache-control" content="no-cache" />
Run Code Online (Sandbox Code Playgroud)

另请注意,如果您要部署到IIS,那么您仍然可以wwwrootproject.json其中放置web.config文件(或由IIS解析).

如果您想使用配置执行此操作,请Configure()在您的Startup类中添加一个方法:

public void Configure(IApplicationBuilder application)
{
    application.Use(async (context, next) =>
    {
        context.Response.Headers.Append("Cache-Control", "no-cache");
        await next();
    });

    // ...
}
Run Code Online (Sandbox Code Playgroud)

请注意,如果您想要在HTTP头只适用于特定的网页,你只需要检查PathString的财产HttpRequest(Request财产HttpContext使用),或者如果你需要它为每一个静态文件(同上,如果你想只适用于其中的一些) :

application.UseStaticFiles(new StaticFileOptions
{
    OnPrepareResponse = context =>
    {
        context.Response.Headers.Append("Cache-Control", "no-cache");
    }
};
Run Code Online (Sandbox Code Playgroud)

您应该发送哪些标题以与您需要支持的浏览器兼容,以确保在所有浏览器中都不会缓存网页.