我的默認文檔是在子文件夾不在根目錄我怎麼能使它在asp.net 2.0網站的默認。asp.net網站在子文件夾中的默認文檔
嘗試將iis7的默認文檔設置爲'/pages/default.aspx' '〜/ pages/default.aspx',但沒有奏效。
我的默認文檔是在子文件夾不在根目錄我怎麼能使它在asp.net 2.0網站的默認。asp.net網站在子文件夾中的默認文檔
嘗試將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做它也是不好的。
做代碼隱藏是時間不必要的拖延 - 只需一行JavaScript即可。 – 2009-01-07 20:11:40
默認文檔是子文件夾特定的東西 - 你試圖做的不會(直接)工作。在根中設置一個default.htm文件,並將其刷新到您的真正「主頁」。
你應該問的更好的問題是你的主頁如何在根目錄下出現。
理論上,您可以在目錄中有一個Web.config文件,並使用defaultDocument element來設置默認文檔。見這裏:https://stackoverflow.com/a/2012079/125938。
不幸的是,我一直無法讓它在本地工作,但might be因爲它在Visual Studio開發服務器中不受支持。
您不需要創建一個虛擬的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");
}
說明:
如果您發現如果您嘗試指定默認文檔(如「子文件夾/子文件夾/文件」),將會找到並投放內容,但所有鏈接都已損壞,因爲Web瀏覽器仍然認爲它位於原始父級夾。正確執行此操作的唯一方法是使用HTTP重定向,無論是通過JavaScript還是通過Web服務器響應。觸發重定向響應IMO的最好方法是通過web.config中的位置標記來觸發重定向,僅針對根中的默認文檔,而不是整個打開文件夾的重定向。 – Triynko 2013-05-08 23:22:09
只需將default.aspx文件留在根文件夾中,並在web.config文件中,使用「位置」標籤進行特定於該頁面的重定向,如下所示:`<系統。webServer> system.webServer> configuration>' –
Triynko
2013-05-08 23:24:03