18

使用 ASP.NET 的 app_offline.htm 功能时,它只允许 html,但不允许图像。有没有办法让图像显示而不必将它们指向另一个站点上的不同 url

4

5 回答 5

13

是的,它不能来自具有 app_offline.htm 文件的站点。该图像必须托管在其他地方。

于 2008-08-28T17:03:27.160 回答
12

另一种解决方案是使用数据 URI 将图像嵌入到 app_offline.htm 页面中。这些天有广泛的支持 - 请参阅以下内容以获取完整的详细信息 - http://en.wikipedia.org/wiki/Data_URI_scheme

于 2012-10-11T14:35:12.070 回答
5

如果您不支持 IE 8 之前的浏览器,您始终可以使用数据 URI 嵌入图像。

http://css-tricks.com/data-uris/

于 2014-06-19T14:20:18.667 回答
3

如果您愿意做更多的工作,您可以轻松创建自定义页面以使应用程序脱机。

一种可能的解决方案:

  • 创建 DisplayOfflineMessage.aspx:包含标签以显示来自 Application["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");
     }
 }
于 2008-08-28T17:28:08.850 回答
2

我有个主意。

您可以创建单独的应用程序,指向同一个文件夹,而无需启用 ASP.NET。则此应用程序访问图像将不受 app_offline.htm 文件的影响。或者,将该应用程序直接指向具有静态内容的文件夹,不会有任何 app_offline 文件。

但是,当然,您需要为此应用程序分配单独的 dns 名称,例如 static.somedomain.com。

于 2008-09-20T06:43:39.757 回答