关于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在目录层次上要在同一级。。