Aps.Net 4.0 Web表单路由工作但不避免使用css jpg js文件

时间:2014-01-16 06:52:52

标签: asp.net webforms seo url-routing webforms-routing

作为标题,我已经实现了路由并且工作正常,但CSS js和jpg文件的路径是错误的。

我包含了库System.Web.Routing,它正确显示在web.config中

<compilation debug="true" strict="false" explicit="true" targetFramework="4.0">
  <assemblies>
    <add assembly="System.Web.Routing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/>
  </assemblies>
</compilation>

从我写的标记中的home.aspx开始

 <a href="search/shoes/" title="" > <img  class="BorderHyperLinkImmagine"  src="img/b5.jpg" alt="" /></a>

比从CSS开始的global.asax中我在浏览器的开发工具中得到404错误到我所有的本地链接(jpg,css,js)导致路由:

http://mysyte.com/search/shoese/style.css

取而代之的是:

http://mysyte.com/style.css

正如你所看到的那样,有一些注释行,我已经尝试了所有这些行,但是得到了相同的结果,错误的路径(404)。

Sub Application_Start(ByVal sender As Object, ByVal e As EventArgs)
    'added for redirect and rewriting URL
    Me.RegisterRoutes(RouteTable.Routes)
End Sub

'added for redirect and rewriting URL
Sub RegisterRoutes(ByVal routeCollection As RouteCollection)
    'RouteTable.Routes.RouteExistingFiles = False
    routeCollection.Ignore("{resource}.css/{*pathInfo}")
    routeCollection.Ignore("{resource}.axd/{*pathInfo}")

    'routeCollection.Ignore("{*allcss}", New With {.allcss = ".*\.css(/.*)?"})
    'routeCollection.Ignore("{*alljpg}", New With {.alljpg = ".*\.jpg(/.*)?"})
    'routeCollection.Add(New Route("*\.css", New StopRoutingHandler()))
    'routeCollection.Ignore("{folder}/{*pathInfo}", New With {.folder = "css"})

     routeCollection.MapPageRoute("RouteForpage", "search/{type}/", "~/lookupfortype.aspx")
End Sub

网址正确,如浏览器中home.aspxlookupfortype.aspx所示。我无法使其工作,我可以尝试更多,如何调试,为什么忽略代码被路由忽略: - )

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

我用这种方式解决了这个问题:

<link rel="stylesheet" href="<%= Page.ResolveUrl("~/myStylysheet.css")%>"  type="text/css" media="screen" />

我希望这对其他人有用。