App_offline.htm, CSS, изображения и aspnet_isapi.dll
-
05-07-2019 - |
Вопрос
Итак, сайт, над которым я работаю, использует urlrewriting в координации с aspnet_isapi.dll (все сопоставлено с ним). Я поднял свой файл app_offline.htm, и весь текст показывает, однако, CSS или изображения не обслуживаются. Я предполагаю, что они обрабатываются ASP.NET из-за сопоставления подстановочных знаков вместо IIS. Это правильно? Если да, как я могу разрешить IIS обслуживать эти файлы? Кроме того, я вижу проблему, возникающую в файле web.config для настроек устройства записи:
<rewrite url="^~/images/network/(.*)/(.*).jpg<*>quot; to="~/services/ImageHandler.ashx?type=$1&id=$2"/>
<rewrite url="^~/image/view/(.*).jpg<*>quot; to="~/ServePRView.aspx?id=$1"/>
<rewrite url="^~/asset/view/(.*).jpg<*>quot; to="~/services/ImageHandler.ashx?id=$1&type=asset"/>
Спасибо за помощь всем, -Стив р>
Решение
Это потому, что если веб-сервер видит файл App_Offline.htm, он обслуживает этот файл для каждого запроса на сайте - даже для изображений. Вы должны обслуживать изображения с другого сайта. Или вы можете попробовать что-то вроде этого http://en.wikipedia.org/wiki/Data_URI_scheme р>
Другие советы
@JeremyWeir правильно. IIS перестает обслуживать подресурсы в приложении app_offline.htm. Чтобы обойти это, нужно встроить содержимое на страницу напрямую, используя:
1) Кодировать изображения внутри HTML 2) внутренние таблицы стилей 3) то же самое для вашего JavaScript
Это не просто в обслуживании, но оно дает вам контроль над внешним видом контента, отображаемого на странице.