ASP.NET/MVC 捆绑器缓存不工作
ASP.NET/MVC Bundler Cache does not work
在 MVC5 项目中,我们遇到了捆绑资源的缓存问题 (js/css)。
根据 mvc docs,默认情况下应该缓存包。它适用于其他项目。但是,在这里,无论什么配置,我们资源的响应头都是
Cache-Control: no-cache, no-store
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/javascript; charset=utf-8
Date: Wed, 01 Jul 2015 11:22:11 GMT
Expires: -1
Keep-Alive: timeout=5, max=100
Pragma: no-cache
Server: Microsoft-IIS/8.5
Transfer-Encoding: chunked
Vary: Accept-Encoding
我不知道这是从哪里来的,因为我们没有在任何地方禁用缓存。有什么想法吗?
正如我在评论中所建议的那样,Igor 声称在 Global.asax 中有禁用缓存的代码:
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();
Igor 只是为了通知您这些行是修复 'browser back button' 场景的建议方法之一(但正如您所看到的一些缺点)。简单场景步骤:
- 登录到应用程序 - 登录的用户被重定向到主页
- 注销 - 用户重定向到登录页面
- 单击后退浏览器按钮 - 用户不应被重定向到主页,但启用缓存后可能会出现问题。
请检查后退浏览器按钮功能。如果我写的场景对你来说有问题,请使用属性
[OutputCache]
使用适当的参数。
问候 Piotr
在 MVC5 项目中,我们遇到了捆绑资源的缓存问题 (js/css)。
根据 mvc docs,默认情况下应该缓存包。它适用于其他项目。但是,在这里,无论什么配置,我们资源的响应头都是
Cache-Control: no-cache, no-store
Connection: Keep-Alive
Content-Encoding: gzip
Content-Type: text/javascript; charset=utf-8
Date: Wed, 01 Jul 2015 11:22:11 GMT
Expires: -1
Keep-Alive: timeout=5, max=100
Pragma: no-cache
Server: Microsoft-IIS/8.5
Transfer-Encoding: chunked
Vary: Accept-Encoding
我不知道这是从哪里来的,因为我们没有在任何地方禁用缓存。有什么想法吗?
正如我在评论中所建议的那样,Igor 声称在 Global.asax 中有禁用缓存的代码:
Response.Cache.SetCacheability(HttpCacheability.NoCache);
Response.Cache.SetExpires(DateTime.UtcNow.AddHours(-1));
Response.Cache.SetNoStore();
Igor 只是为了通知您这些行是修复 'browser back button' 场景的建议方法之一(但正如您所看到的一些缺点)。简单场景步骤:
- 登录到应用程序 - 登录的用户被重定向到主页
- 注销 - 用户重定向到登录页面
- 单击后退浏览器按钮 - 用户不应被重定向到主页,但启用缓存后可能会出现问题。
请检查后退浏览器按钮功能。如果我写的场景对你来说有问题,请使用属性
[OutputCache]
使用适当的参数。
问候 Piotr