日期:2014-05-17  浏览次数:20488 次

关于Global中重写URL造成CSS丢失的问题
rt:关于Global中重写URL造成CSS丢失的问题

css文件是放在

/css/css2012/a.css

原url是
/city.aspx

重写的是

/city/beijing

在地址栏输入
***/city/beijing
后能正常定向到/city.aspx页面 但是css地址变成了 href="../css/css2012/a.css" 


页面上引用
<link id="css1" rel="stylesheet" runat="server" href="~/css/css2012/a.css" type="text/css" />

百度了下很多这样说
用根目录限定了(root qualify)CSS和图像引用(“/style.css”,而不是 “style.css”)。对于ASP.NET控件,你也可以使用“~”句法从你应用的根目录来引用文件(譬如,<asp:image imageurl="~/images/logo.jpg" runat="server"/>) 。
实际上我是用了runat="server" 但是还是不可以

求解

------解决方案--------------------
<link id="css1" rel="stylesheet" href="/css/css2012/a.css" type="text/css" />

去掉~,~/是顶对当前aspx页面来进行应用目录的解释的,所以不会考虑你的url重写。用/直接指定到网站根目录就行了
------解决方案--------------------
“~”这种写法适合服务端控件。。但是并不是说你加了runat="server" 就会跟服务端控件一样了。。
------解决方案--------------------
<link id="css1" rel="stylesheet" href="<%=Page.ResolveUrl("~")%>css/css2012/a.css" type="text/css" />
------解决方案--------------------
路径的问题吧。你原来的aspx文件和重写后的URL在目录层次上要在同一级。。