0

作为标题,我已经实现了路由并且工作正常,但是 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

URL 是正确的,如在浏览器中显示的两个地方home.aspx,和lookupfortype.aspx。我无法使其工作,我可以尝试更多以及如何调试它,为什么路由会忽略忽略代码:-)

谢谢您的帮助

4

1 回答 1

0

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

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

我希望这对其他人有用。

于 2014-01-18T13:56:41.283 回答