суббота, 20 сентября 2008 г.

app_offline.htm и статический контент

В ASP.NET 2.0 есть удобная фича, когда надо провести над сайтом массовые обновления. Чтобы пользователи не получали случайные ошибки, работу сайта можно временно приостановить, положив в корень приложения файл app_offline.htm. При этом пул приложения выключается (это фича также полезна если нам надо просто перегрузить сайт).

При наличии этого файла все запросы к сайту возвращают его содержимое с кодом 404 (чтобы поисковики не проиндексировали). Но вот засада – при обращение к статическим файлам – тоже возращается его содержимое! Т.е. не css внешний, ни картинки вставить в этот файл не получится.

Скорей всего, это происходит только с файлами ассоциированными для обработки ASP.NET. Но в встроенном веб-сервере Visual Studio Cassini и IIS 7.0 все файлы им обрабатываются! И выключить на уровне только папки со статическим содержимым модуль ASP.NET невозможно, только на уровне всего приложения. :(

UPDATE: Решил проблему несколько подругому :).

Так как с ASP.NET мы ничего сделать не можем, оффлайновый файл всегда на него влияет, нам нужен второй сайт, где ASP.NET нет. Но для этого не обязательно держать второй сервер с копией статических ресурсов. Можно завести второй сайт указывающий на ту же физическую директорию, где и основное приложение, и выключить для него ASP.NET.

Или же, что более элегантно, если все ресурсы хрянться в одной папке – создать второй сайт с корневой директорией именно в ней. Там не будет никакого asp_offline.htm файла – так что ASP.NET отключать не надо.

Конечно, чтобы обращаться к этому второму сайту – ему надо будет завести dns имя, что-нибудь типа static.example.com. И соответсвенно, прописать ссылки на необходимые статические ресурсы в файле app_offline.htm на этот домен.

Вот такое решение на практике. :)

4 комментария:

Дмитрий Андриянов комментирует...

можно разместить весь CSS внутри файла, а картинки вставить через DataUrl

derigel комментирует...

Тоже вариант. Но когда я писал эту заметку 3 года назад кроссбраузерность такого решения была плоха. Не знаю как еа сегодняшний момент.

Анонимный комментирует...

Салон Секреты Красоты предлагает большой выбор классических салонных услуг: парикмахерские услуги, маникюр, педикюр, косметология, перманентный макияж. Мы работаем более 10 лет и придерживаемся принципа соотношения цены и качества обслуживания. Для постоянных клиентов действуют акции и бонусная система. Заходите на наш сайт [url=http://s-krasoti.ru/] эпиляция бикини-дизайн фото
[/url]

Unknown комментирует...

Casino Review - Jordan17: Casino Online, Sportsbook - Airjordan
Read m 2 슬롯 a detailed review of our 추천 사이트 experience and discover the jordan 18 white royal blue online site casino. All the features of the 민속촌 사이트 site include the bonuses, top air jordan 18 retro yellow suede promotions and customer support.