我们正在ASP.NET中创建一个大型安全后台Web应用程序。对网站的所有访问都是通过https连接进行的,我们要么关闭页面缓存,要么将缓存设置为快速到期。
然而,该网站使用了相当多的图像和较大的javascript文件/库。有没有办法有选择地缓存某些文件或文件类型,以便它们不会一直重新加载?
答案 0 :(得分:0)
请查看此类标题:
您应该阅读或浏览Caching in HTTP。
使用ASP.NET MVC,您需要使用OutputCacheAttribute来装饰控制器操作。例如:
[OutputCache(Duration = 24*60*60)] // Cached for 1 day
public ActionResult Index() { return View(); }
在ASP.NET中,您可以在aspx文件中使用OutputCache指令:
<%@ OutputCache Duration="86400" %>
答案 1 :(得分:0)
经过一些额外的谷歌搜索,看起来我可能只需要在我的脚本和图像文件夹(以及我想要缓存的任何其他文件夹)中创建一个web.config:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<staticContent>
<clientCache cacheControlMode="UseMaxAge" cacheControlMaxAge="7.00:00:00" />
</staticContent>
</system.webServer>
</configuration>
这看起来是对的吗?我错过了什么吗?
答案 2 :(得分:0)
您需要使用“远期未来”模式。不使用输出缓存,这是你如何做到这一点。 (我个人认为这看起来比输出缓存更好。)
HttpContext.Response.ExpiresAbsolute = DateTime.Now.AddYears(5);
当然,您可以将DateTime更改为您想要的任何内容。