Как использовать ImageResizer HttpModule в модуле Orchard?
Я хочу использовать библиотеку ImageResizer (версия 4+) в моем модуле Orchard для отображения эскизов PDF, но я хочу использовать его в качестве модуля HttpModule вместо использования управляемого API (например, модуля Orchard.MediaProcessing).
Поэтому я следовал приведенным инструкциям и соответствующим образом настроил Web.config:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
...
<section name="resizer" type="ImageResizer.ResizerSection" requirePermission="false" />
</configSections>
<resizer>
<plugins>
<add name="MvcRoutingShim" />
<add name="PdfiumRenderer" downloadNativeDependencies="true" />
</plugins>
</resizer>
<system.web>
...
<httpModules>
...
<add name="ImageResizingModule" type="ImageResizer.InterceptModule" />
</httpModules>
</system.web>
<system.webServer>
...
<modules ...>
...
<add name="ImageResizingModule" type="ImageResizer.InterceptModule" />
</modules>
</system.webServer>
<runtime>
<assemblyBinding ...>
...
<dependentAssembly>
<assemblyIdentity name="PdfiumViewer" publicKeyToken="91e4789cfb0609e0" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.7.0.0" newVersion="2.7.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
К сожалению, это не работает вообще, изображения и PDF-файлы передаются без изменений.
Поэтому я проделал те же шаги с проектом Orchard.Web, и он неожиданно заработал, но теперь он больше не зависит от модуля.
Есть ли способ включить ImageResizer только в моем модуле?
1 ответ
Модули Orchard не могут объявлять модули Http, они определены на уровне приложения. Что вы можете сделать, это зарегистрировать свой собственный контроллер / действие в вашем модуле и напрямую использовать ImageResizer.
Однако эта функция уже реализована с помощью некоторых полезных помощников Orchard, таких как модуль Orchard.MediaProcessing. Вы найдете пример с этим сообщением в блоге: http://weblogs.asp.net/bleroy/effortlessly-resize-images-in-orchard-1-7
Вы также можете взглянуть на https://github.com/OrchardCMS/Orchard/blob/dev/src/Orchard.Web/Modules/Orchard.MediaProcessing/Shapes/MediaShapes.cs чтобы увидеть все остальные варианты.
У вас также есть способ определить Профили со страницы администратора и повторно использовать эти именованные профили. Профиль - это набор фильтров, которые применяются к изображению (вращение, водяной знак, обрезка,...), поэтому вы можете вызывать его по любому URL-адресу изображения из ваших просмотров.