我目前正在开发一个web应用程序,将由多个客户使用,我希望在每个页面上显示客户的标志。该应用程序正在使用ASP.NET MVC3和C#进行开发。
常规约定建议将图像存储在数据库中,但考虑到此图像将显示在每个页面上,我担心这样做会对性能造成影响。如果我将图像存储在文件系统上,浏览器将缓存图像,而不会每次都请求它。
如果我将图像存储在数据库中,浏览器是否也会对其进行缓存,或者每次都会调用函数来请求图像?
在这种情况下,我是否最好将图像存储在服务器的硬盘上?
发布于 2011-07-19 21:04:06
(现代的)浏览器不知道服务器做了什么来存储图像。如果URL是相同的,浏览器只会拉出缓存的版本,除非它被明确告知不要这样做。
在某些情况下,您可能需要禁用缓存:http://www.example.com/random-image可能会在每次访问时提供不同的图像,而浏览器将缓存提供的第一个图像。
发布于 2011-07-19 21:03:09
在动态图像控制器中适当地设置Response.Cache头,它是否来自动态源并不重要。
查看这篇文章,了解使用MVC ActionFilter:http://weblogs.asp.net/rashid/archive/2008/03/28/asp-net-mvc-action-filter-caching-and-compression.aspx设置缓存的想法。它还说明了您需要调整的头部。
发布于 2011-07-19 21:05:16
图像通过它们的URL进行缓存。如果URL自上次加载页面后未更改,则将从缓存中获取图像。
https://stackoverflow.com/questions/6747582
复制相似问题