我的默认文档位于子文件夹中,而不是根目录中,如何在 asp.net 2.0 网站中将其设为默认值。
尝试将 iis7 默认文档设置为 '/pages/default.aspx' '~/pages/default.aspx' 但它不起作用。
默认文档与起始页不同。默认文档表示如果我请求mysite.com/somefolder
但未指定文件,IIS 应显示哪个文件。
如果您想使用特定页面作为主页,请创建一个 Default.aspx 文件并将其写入它的代码隐藏类中:
public override void ProcessRequest(HttpContext context) {
context.Response.Redirect("pages/default.aspx", true);
}
由于客户端可能禁用了 Javascript,因此服务器端方法会更可靠。但是,最好发出永久重定向而不是简单的Response.Redirect
. 从 SEO 的角度来看,使用 JS 也很糟糕。
您不需要创建一个虚拟 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");
}
解释:
默认文档是特定于子文件夹的东西-您尝试做的事情不会(直接)起作用。在根目录中设置一个 default.htm 文件,并让它刷新到您真正的“主页”。
您应该问的更好的问题是您的主页到底是如何脱离根目录的。
理论上,您可以在目录中有一个 Web.config 文件并使用defaultDocument 元素来设置默认文档。见这里:https ://stackoverflow.com/a/2012079/125938 。
不幸的是,我无法让它自己在本地工作,但这可能是因为 Visual Studio 开发服务器不支持它。
说“index.html”是您想要的默认页面,它存在于“公共”子文件夹中。
不要将“/Public/index.html”指定为默认站点,而是尝试“Public/index.html”