对于我的 MVC 项目(图像服务器应用程序),我无法使用 imageresizer 进行缓存。我可以像这样访问我的图像,图像源可以是文件系统/数据库(依赖注入):
localhost/images/123.jpg?width=500
localhost/images/123?width=500
我有一个 MVC 3 项目,其路线如下
routes.RouteExistingFiles = true;
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.IgnoreRoute("favicon.ico");
routes.MapRoute(
"ImagesWithExtension", // Route name
"images/{imageName}.{extension}/", // URL with parameters
new { controller = "Home", action = "ViewImageWithExtension", imageName = "", extension = "", id = UrlParameter.Optional } // Parameter defaults
);
routes.MapRoute(
"Images", // Route name
"images/{imageName}/", // URL with parameters
new { controller = "Home", action = "ViewImage", imageName = "", id = UrlParameter.Optional } // Parameter defaults
);
我有两个控制器来处理图像 public ActionResult ViewImageWithExtension(string imageName, string extension) {} public ActionResult ViewImage(string imageName) {}
当 URL 如下时缓存完成: localhost/images/123.jpg?width=500 并且图像源是 FileSystem
localhost/images/123?width=500 缓存不工作的图像源是 Filesystem
localhost/images/123.jpg ?width=500 缓存不工作,图像源数据库
localhost/images/123?width=500 缓存不工作,图像源数据库
我的网络配置是这样的:
<configSections>
<section name="resizer" type="ImageResizer.ResizerSection" /> </configSections>
<resizer>
<!-- Unless you (a) use Integrated mode, or (b) map all reqeusts to ASP.NET,
you'll need to add .ashx to your image URLs: image.jpg.ashx?width=200&height=20
Optional - this is the default setting -->
<diagnostics enableFor="AllHosts" />
<pipeline fakeExtensions=".ashx" />
<DiskCache dir="~/MyCachedImages" autoClean="false" hashModifiedDate="true" enabled="true" subfolders="32" cacheAccessTimeout="15000" asyncWrites="true" asyncBufferSize="10485760" />
<cleanupStrategy startupDelay="00:05" minDelay="00:00:20" maxDelay="00:05" optimalWorkSegmentLength="00:00:04" targetItemsPerFolder="400" maximumItemsPerFolder="1000" avoidRemovalIfCreatedWithin="24:00" avoidRemovalIfUsedWithin="4.00:00" prohibitRemovalIfUsedWithin="00:05" prohibitRemovalIfCreatedWithin="00:10" />
<plugins>
<add name="DiskCache" />
</plugins> </resizer>
我做错了什么还是 Imageresizer 不支持这种情况?如果没有任何好的插件来使用基于磁盘的图像cahce?
提前致谢。