有没有办法让图像通过 ASP.NET 和 app_offline.htm 显示?

Posted

技术标签:

【中文标题】有没有办法让图像通过 ASP.NET 和 app_offline.htm 显示?【英文标题】:Is there a way to get images to display with ASP.NET and app_offline.htm? 【发布时间】:2010-09-07 03:47:34 【问题描述】:

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

我不明白这是如何回答这个问题的,因为它清楚地表明:无需将它们指向另一个网站上的不同网址 @sboisse 将 app_offline.htm 与 IIS 一起使用时,您根本不必重定向到另一个 URL。您什么都没有改变,只需放入 htm 文件即可。 IIS 完成其余的工作。是的,从技术上讲,IIS 正在执行重定向,但是,我的回答确实正确回答了这个问题,因为问题是“不必将它们指向不同站点上的不同 url”。这不会将它们指向任何地方,而不是不同的 URL 或站点。就我们而言,htm 文件只是显示而不是请求的页面。 是的,但是图像不会显示,因为对站点的每个请求都会返回该 htm 文件,包括图像请求。我对这个问题的理解是:有没有办法让图像显示在 app_offline.htm 中,而无需从另一个站点检索图像,即放置 app_offline.htm 的同一个站点。您的答案不满足这两个条件。或者如果我遗漏了什么? 对我来说@derigel 建议的答案最接近我们正在寻找的答案,即创建一个禁用 ASP.NET 的子域网站,这样即使即使app_offline.htm 碍事。 作者最初的问题(在他后来编辑之前)是“有没有办法让图像通过 ASP.NET 和 app_offline.htm 显示?”。所以,这是最初的问题,我的回答是正确的。您可以在 app_offline.htm 文件中使用图片,但它们不能来自同一个站点。【参考方案2】:

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

一种可能的解决方案:

创建 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");
     
 

【讨论】:

【参考方案3】:

我有个主意。

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

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

【讨论】:

【参考方案4】:

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

【讨论】:

【参考方案5】:

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

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

【讨论】:

那篇文章中链接到的好工具:jpillora.com/base64-encoder

以上是关于有没有办法让图像通过 ASP.NET 和 app_offline.htm 显示?的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法让 Asp.net 零公共站点(Asp.net MVC)中的实时登录用户?

asp.net core 2 从本地磁盘驱动器加载和显示图像

有没有办法在服务器上运行 asp.net 网络浏览器控件?

Asp.net:不同屏幕分辨率的可变图像源

使用 ASP.NET 表单身份验证,如何让图像出现在登录屏幕上?

图片没有出现在 Asp.Net Core