12

因此,我正在处理的网站正在使用 urlrewriting 与 aspnet_isapi.dll 协调(一切都映射到它)。我放了我的 app_offline.htm 文件,所有的文本都显示了,但是没有提供 CSS 或图像。我猜由于通配符映射而不是 IIS,它们正在由 ASP.NET 处理。这个对吗?如果是这样,我怎样才能允许 IIS 提供这些文件?此外,我可以在重写器设置的 web.config 中看到一个问题:

<rewrite url="^~/images/network/(.*)/(.*).jpg$" to="~/services/ImageHandler.ashx?type=$1&amp;id=$2"/>
    <rewrite url="^~/image/view/(.*).jpg$" to="~/ServePRView.aspx?id=$1"/>
    <rewrite url="^~/asset/view/(.*).jpg$" to="~/services/ImageHandler.ashx?id=$1&amp;type=asset"/>

感谢大家的帮助,-史蒂夫

4

2 回答 2

19

这是因为如果网络服务器看到 App_Offline.htm 文件,它会为站点中的每个请求(甚至是图像)提供该文件。您必须提供来自另一个站点的图像。或者你可以尝试这样的http://en.wikipedia.org/wiki/Data_URI_scheme

于 2010-01-07T20:47:18.183 回答
1

@JeremyWeir 是正确的。IIS 在 app_offline.htm 的存在下停止提供子资源解决此问题的方法是使用以下命令直接将内容嵌入页面中:

1)在 Html 中编码图像 2)内部样式表 3) 与您的 javascript 相同

这不是最容易维护的,但它确实使您可以控制页面上显示的内容的外观。

于 2017-11-14T12:01:22.843 回答