ASP.NET の app_offline.htm 機能を使用すると、html のみが許可され、画像は許可されません。別のサイトの別の URL を指定せずに画像を表示する方法はありますか?
5 に答える
はい、app_offline.htm ファイルがあるサイトからは取得できません。イメージは別の場所でホストする必要があります。
別の解決策は、データURIを使用してapp_offline.htmページ内に画像を埋め込むことです。最近は広くサポートされています-詳細については以下を参照してください -http://en.wikipedia.org/wiki/Data_URI_scheme
IE 8 より前のブラウザーをサポートしていない場合は、データ URI を使用していつでも画像を埋め込むことができます。
もう少し作業を行う場合は、カスタム ページを簡単に作成して、アプリケーションをオフラインにすることができます。
考えられる解決策の 1 つ:
- DisplayOfflineMessage.aspx の作成: Application["OfflineMessage"] からのオフライン メッセージを表示するためのラベルが含まれています。
- ManageOfflineStatus.aspx: オフライン/オンライン チェックボックス、オフライン メッセージ用のテキスト領域、および更新ボタンが含まれています。更新ボタンは、2 つのアプリケーション レベル変数を設定します。1 つはメッセージ用、もう 1 つはアプリケーションがオンラインかどうかを示すフラグです。(このページは管理者のみがアクセスできるようにする必要があります)
次に 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");
}
}
考えがある。
ASP.NETを有効にせずに、同じフォルダーを指す別のアプリケーションを作成できます。この場合、このアプリケーションによる画像へのアクセスは、app_offline.htmファイルの影響を受けません。または、そのアプリケーションが静的コンテンツのあるフォルダーを直接指すようにすると、app_offlineファイルはありません。
ただし、もちろん、このアプリケーションには、static.somedomain.comのような個別のDNS名を割り当てる必要があります。