有没有办法让图像通过 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 从本地磁盘驱动器加载和显示图像