2011-09-08 27 views
1

假設我想,路由應該忽略* .js文件* .css和*。PNG等我如何忽略的路由一些文件類型asp.net 4.0

我搜索谷歌和發現解決方案。我在我的頁面實現,但仍然js文件不下載。

這裏是我的代碼

void Application_Start(object sender, EventArgs e) 
    { 
     RouteTable.Routes.Ignore("images/{*pathInfo}"); 
     RouteTable.Routes.Ignore("Scripts/{*pathInfo}"); 
     RouteTable.Routes.Ignore("Styles/{*pathInfo}"); 


     RouteTable.Routes.MapPageRoute("Source", "UrlRewrite/Approach1/Source/{ID}/{Title}", "~/UrlRewrite/Approach1/Source.aspx"); 
     RouteTable.Routes.MapPageRoute("Source2", "UrlRewrite/Approach1/Source/{Question}/{ID}/{Title}/{Page}", "~/UrlRewrite/Approach1/Source.aspx"); 
     RouteTable.Routes.MapPageRoute("Source1", "Feedback/{ID}/{Title}", "~/Feedback.aspx"); 
     //RouteTable.Routes.MapPageRoute("Source1", "Source.aspx{?}{ID}{&}{Title}", "~/UrlRewrite/Approach1/Source.aspx"); 
     RouteTable.Routes.MapPageRoute("product", "Data/product.aspx/{*ID}", "~/UrlRewrite/Approach1/Source.aspx"); // url mapping with * routing 

    } 

這樣告訴我,我的代碼是確定用於忽略一些文件類型。爲什麼我的js沒有下載。 我的css文件位於Styles文件夾中,我的js文件位於Script文件夾等。腳本&根文件夾中的樣式文件夾。請指導我。感謝

回答

0

試試這個:

Routes.IgnoreRoute("{file}.js"); 
Routes.IgnoreRoute("{file}.css"); 
Routes.IgnoreRoute("{file}.png"); 
+0

我需要與像路線全路徑寫.IgnoreRoute( 「{腳本/ myjs}的.js」); –

+0

不,只需複製並粘貼我的代碼。我用它的.txt文件,它適用於我。 – krolik

3

按菲爾哈克,http://haacked.com/archive/2008/07/14/make-routing-ignore-requests-for-a-file-extension.aspx

RouteTable.Routes.IgnoreRoute("{*alljs}", new {[email protected]".*\.js(/.*)?"}); 
RouteTable.Routes.IgnoreRoute("{*allpng}", new {[email protected]".*\.png(/.*)?"}); 
RouteTable.Routes.IgnoreRoute("{*allcss}", new {[email protected]".*\.css(/.*)?"}); 
+0

我使用routes.IgnoreRoute(「{* alljs}」,新{alljs = @「。* \。js(/.*)?」}); 我仍然得到相同的錯誤。這是什麼意思。 = @ 「* \。JS(/.*)?」。我需要提供我的js文件路徑嗎? –

+0

不,這不應該是必要的。嘗試用'RouteTable.Routes'替換'routes' – JConstantine

0

可以使用RESOLVEURL

<script type="text/javascript" src='<%= ResolveUrl("~/path to script ")%>'></script>