簡體   English   中英

URL使用Webforms ASP.net 4和IIS6路由相對路徑

[英]URL routing relative paths with webforms ASP.net 4 and IIS6

我嘗試在IIS6服務器上運行的asp.net 4.0站點上配置路由。 我正在使用MapPageRoute,它將帶我到正確的頁面。 到目前為止我遇到的問題:

1)無擴展網址路由

通過安裝此處描述的QFE來解決: http://blogs.msdn.com/b/tmarq/archive/2010/04/01/asp-net-4-0-enables-routing-of-extensionless-urls-without-impacting- static-requests.aspx

2)靜態內容,例如js,css和圖片不顯示

使用Chris Cavanagh的baseUrl技術解決,此處所述chriscavanagh.wordpress.com/2008/11/06/aspnet-routing-just-enough-rope/

2)相對網址和回發方案

不解決。 由於某些原因,相對路徑未正確解釋。 例如。 asp:ImageButton runat =“ server” ImageUrl =“〜/ images / tree.jpg”渲染為src =“”和img。 我已經能夠通過將ImageUrl設置為絕對路徑來強制其工作,但是我不能為所有事情做到這一點。 它還影響回發方案。 單擊按鈕會將我從(例如)localhost / website / articles / the-article_description /帶到不存在的localhost / website / the-article-description。

誰能幫我這個忙嗎?

是否將RouteExistingFiles屬性設置為true?

對於#3這樣的情況,我一直在其中放置一個函數,該函數返回一個字符串,用作生產站點的前綴URL。 因此,對於這一部分,您可以:

mageUrl="~/images/tree.jpg"

調整為此:

mageUrl="<%= [YourNameSpace].AppMethod.IsProd() %>/images/tree.jpg"

“ AppMethod”是一些靜態類,如果應用程序正在生產中運行,則IsProd()函數將返回指定生產路徑所需的前綴。 否則,如果應用程序在dev中運行,則前綴為“〜”。 您可以通過閱讀計算機名稱來確定該應用程序是否正在生產中運行。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM