Для моего проекта MVC (приложения сервера изображений) я не могу выполнять кэширование с использованием imageresizer. Я могу получить доступ к своим изображениям, как это, и источником изображения может быть либо FileSystem / Database (Dependency injeciton):
localhost / images / 123.jpg? Width = 500
локальный / изображения / 123? ширина = 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 (строка imageName, расширение строки) {}
public ActionResult ViewImage (string imageName) {}
Кэширование выполняется, когда URL выглядит следующим образом:
localhost / images / 123.jpg? width = 500 и источником изображения является FileSystem
localhost / images / 123? width = 500 Кэш не работает Источник изображения - Файловая система
localhost / images / 123.jpg? width = 500 Кэш-память не работает, источник изображения DB
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?
Заранее спасибо.