Asp.net 添加PathInfo值时,如何正确解析css链接?

Asp.net 添加PathInfo值时,如何正确解析css链接?,asp.net,css,url,pathinfo,Asp.net,Css,Url,Pathinfo,我有一个asp.NET3.5应用程序。当我尝试向要在Request.PathInfo中提取的url添加值时,我丢失了head中链接的任何内容,因为这些位置被解析为相对路径 母版页如下所示: <head id="Head1" runat="server"> <link rel="stylesheet" href='~/App_Themes/main/style.css' type="text/css" /> </head> 浏览器正在查找位于的样式表

我有一个asp.NET3.5应用程序。当我尝试向要在
Request.PathInfo
中提取的url添加值时,我丢失了
head
中链接的任何内容,因为这些位置被解析为相对路径

母版页如下所示:

<head id="Head1" runat="server">
    <link rel="stylesheet" href='~/App_Themes/main/style.css' type="text/css"  />
</head>
浏览器正在查找位于的样式表

http://localhost:5000/project/folder/App_Themes/main/style.css
而不是

http://localhost:5000/project/App_Themes/main/style.css
使用相对路径解析是自动行为吗?我能换一下吗?这是以前的开发人员正在做的事情,我没有发现吗

---编辑---

我采纳了下面的建议,添加了一个
base
元素,如下所示

<base id="ctl00_ctl00_baseElement" href="http://localhost:5000/project/"></base>
使用:


使用:



显然,当
head
元素定义为服务器控件时,服务器会自动解析和解析其中的
link
元素。因此,解决方案是将head元素作为标准html控件,或者手动添加
链接
元素。我放弃了我一直追求的
PathInfo
想法,所以我没有走那么远。

显然,当
head
元素被定义为服务器控件时,服务器会自动解析和解析其中的
link
元素。因此,解决方案是将head元素作为标准html控件,或者手动添加
链接
元素。我放弃了我一直追求的
PathInfo
想法,所以我没有走那么远。

我解决了这个问题,添加了一个html“base”标记, 使用方法:Page.ResolveUrl(“~”)解析站点的基本url。 可在本地主机和服务器上正常工作:

    <base href="<%=ResolveUrl("~")%>" />

我解决了这个问题,添加了一个html“base”标记, 使用方法:Page.ResolveUrl(“~”)解析站点的基本url。 可在本地主机和服务器上正常工作:

    <base href="<%=ResolveUrl("~")%>" />


所以“项目”会根据您的项目而变化吗?@luke是的,asp.net开发服务器就是这样工作的
localhost:port/project name/stuff
。那么“project”会根据您的项目而变化吗?@luke是的,asp.net开发服务器就是这样工作的
localhost:port/project name/stuff
http://localhost:5000/App_Themes/main/style.css
<base href="http://yourdomain.com">
<link rel="stylesheet" href="/App_Themes/main/style.css" type="text/css" />
    <base href="<%=ResolveUrl("~")%>" />