为什么asp.net css链接路径不在head标签之外工作?
我在母版页中有这段代码:
<head runat="server">
<title>Untitled Page</title>
<link href="../CSS/default.css" rel="stylesheet" type="text/css" runat="server" />
<asp:ContentPlaceHolder id="head" runat="server">
</asp:ContentPlaceHolder>
</head>
这似乎解决了CSS链接无关页面所在的文件夹深度。
我注意到如果你使用css链接它只会解析到正确的路径,如果它在头部(如果它在身体中使用它不起作用)。
我知道如何通过使用ResolveUrl解决它,但我想知道这是否如何工作或者我是否遗漏了什么。
答案 0 :(得分:4)
当您在母版页的head元素上指定runat =“server”时,ASP.NET会对链接和脚本标记中的网址进行一些神奇的重新定位。
这种奇怪行为有一些细节here。
答案 1 :(得分:1)
服务器控件将处理相对URL,并将相应的URL输出到客户端。 <head runat='server'>
是执行此操作的服务器控件。如果您删除runat='server'
属性,则会看到此地址转换不再发生。