使用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路径已经更新但图像的路径没有更新。 有什么建议吗?
答案 0 :(得分:1)
我会在应用程序根目录中使用app_offline.htm
,或者至少Response.Redirect
如果我是你,Server.Transfer
不会更改HTTP地址,所以你必须小心重定向所有资产到底层页面或使所有地址绝对
答案 1 :(得分:0)
server.transfer
实际上是停止执行页面并开始执行另一个页面,即您提供的页面。
结果是用户在同一个网址下看到了不同的页面。
这与图像路径无关。此外,图像不会从asp.net传递,除非您已设置偶数图像以从asp.net处理传递。另外,对于您提供给我们的代码,如果它们是图像,则不进行任何转移,但是您检查text/html
。
现在,如果您已将执行移至其他css,则图像路径不会更改,只会更改用户看到的页面。
也许你的意思是你使用MapPath()并且根据新目录没有改变?