当使用ASP.NET的app_offline.htm功能时,它只允许html,但不允许图像。有没有办法让图像显示 无需将他们指向另一个网站上的不同网址?

有帮助吗?

解决方案

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

其他提示

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

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

一种可能的解决方案:

  • 创建 DisplayOfflineMessage.aspx:包含用于显示来自应用程序[“OfflineMessage”]的离线消息的标签。
  • 管理离线状态.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");
     }
 }

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

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

我有个主意。

您可以创建单独的应用程序,指向同一文件夹,而不启用 ASP.NET。那么通过该应用程序访问图像就不会受到app_offline.htm 文件的影响。或者,将该应用程序直接指向包含静态内容的文件夹,将不会有任何 app_offline 文件。

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top