При использовании функции app_offline.htm ASP.NET он позволяет только html, но не изображения. Есть ли способ заставить изображения отображать , не указывая их на другой URL-адрес на другом сайте?
Есть ли способ получить изображения для отображения с ASP.NET и app_offline.htm?
Ответ 1
Да, это просто не может произойти с сайта, на котором есть файл app_offline.htm. Изображение должно быть размещено в другом месте.
Ответ 2
Другим решением является встраивание образа на страницу app_offline.htm с использованием URI данных. В наши дни есть широкая поддержка - подробнее см. Ниже: http://en.wikipedia.org/wiki/Data_URI_scheme
Ответ 3
Если вы готовы сделать немного больше работы, вы можете легко создать пользовательскую страницу, чтобы приложение было отключено.
Одно из возможных решений:
- Создать DisplayOfflineMessage.aspx: Содержит ярлык для отображения вашего автономного сообщения из приложения [ "OfflineMessage" ].
- ManageOfflineStatus.aspx: содержит автономный/онлайн-флажок, текстовое поле для автономного сообщения и кнопку обновления. Кнопка обновления устанавливает две переменные уровня приложения: одну для сообщения и флаг, указывающий, включено ли приложение. (Эта страница должна быть доступна только администраторам)
Затем в Global.asax
public void Application_Start(object sender, EventArgs e)
{
Application["OfflineMessage"] = "This website is offline.";
Application["IsOffline"] = false;
}
public void Application_OnBeginRequest(object sender, EventArgs e)
{
bool offline = Convert.ToBoolean(Application["IsOffline"]);
if (offline)
{
// TODO: allow access to DisplayOfflineMessage.aspx and ManageOfflineStatus.aspx
// redirct requests to all other pages
Response.Redirect("~/DisplayOfflineMessage.aspx");
}
}
Ответ 4
У меня есть идея.
Вы можете создать отдельное приложение, указанное в той же папке, без включенной ASP.NET. Тогда доступ к изображениям этого приложения не будет затронут файлом app_offline.htm. Или укажите это приложение в папку со статическим содержимым, не будет никаких файлов app_offline.
Но, конечно, вам нужно назначить отдельное имя DNS для этого приложения, например static.somedomain.com.
Ответ 5
Если вы не поддерживаете браузеры до IE 8, вы всегда можете вставлять изображения с использованием URI данных.