0

用于Server.Transfer显示通知用户网站处于维护模式的页面。
在 global.asax:

void Application_BeginRequest(object sender, EventArgs e)
{
    if (Request.IsLocal)
        return;

    if (ConfigurationManager.AppSettings["MaintenanceMode"] == "true")
    {
        if (Request.AcceptTypes != null && Request.AcceptTypes[0] == "text/html")
            Server.Transfer("~/UserMessage.aspx?Maintenance");
    }
}  

效果很好,除了查看页面源代码时,我看到 CSS 路径已更新,但图像的路径没有。
有什么建议么?

4

2 回答 2

1

我将app_offline.htm在应用程序根目录中使用,或者至少Response.Redirect如果我是您,Server.Transfer不会更改 HTTP 地址,因此您必须小心将所有资产重定向到基础页面或使所有地址成为绝对地址

于 2012-05-18T06:36:27.307 回答
0

实际上是停止执行页面并开始执行不同的server.transfer页面,即您给它的页面。

结果是用户在同一个 url 下看到了不同的页面。

这与图像路径无关。此外,图像不是从 asp.net 传递的,除非您将偶数图像设置为从 asp.net 处理传递。此外,在您提供给我们的代码上,如果它们是图像,您不会进行任何传输,但您会检查text/html.

现在,如果您将执行移动到不同的 css,图像路径不会改变,只有用户看到的页面会改变。

也许您的意思是您使用 MapPath() 并且这不会根据新目录进行更改?

于 2012-05-18T06:37:30.670 回答