我的默认文档位于子文件夹而不是root文件中如何在asp.net 2.0网站中将其设为默认文件。
尝试将iis7默认文档设置为'/pages/default.aspx' '〜/ pages / default.aspx'但它不起作用。
答案 0 :(得分:16)
默认文档与起始页面不同。默认文档表示如果我请求mysite.com/somefolder
并且未指定文件,则应显示IIS显示的文件。
如果您想使用特定页面作为主页,请创建一个Default.aspx文件并将其写入其代码隐藏类中:
public override void ProcessRequest(HttpContext context) {
context.Response.Redirect("pages/default.aspx", true);
}
由于客户端可能已禁用Javascript,因此服务器端方法会更可靠。但是,最好发出永久重定向而不是简单的Response.Redirect
。从SEO的角度来看,使用JS也是不好的。
答案 1 :(得分:8)
您无需创建虚拟Default.aspx页面。
在Global.asax.cs文件中,编写以下内容:
public void Application_Start(object sender, EventArgs e)
{
var routeCollection = RouteTable.Routes;
routeCollection.MapPageRoute("DefaultRoute", string.Empty, "~/YourDesiredSubFolder/YourDesiredDocument.aspx");
}
说明:
答案 2 :(得分:2)
默认文档是特定于子文件夹的内容 - 您尝试执行的操作不会(直接)工作。在root中设置default.htm文件,并将其刷新到真正的“主页”。
你应该问的更好的问题是你的主页是如何离开根目录的。
答案 3 :(得分:0)
理论上,您可以在目录中包含Web.config文件,并使用defaultDocument element设置默认文档。见这里:https://stackoverflow.com/a/2012079/125938。
遗憾的是,我无法让自己在本地工作,但might be因为Visual Studio开发服务器不支持它。
答案 4 :(得分:0)
Say" index.html"是您想要的默认页面,它出现在" Public"子目录。
而不是指定" /Public/index.html"作为默认网站,请尝试" Public / index.html"