2011-06-21 52 views
39

asp.net中如何解析这两条路径。 为什么这两个给出不同的路径。我们什么时候需要去这些。asp.net中样式表路径中的斜线(/)与代字号斜杠(〜/)

<link href="/common/black_theme/css/style.css" rel="stylesheet"> (this is working) 
<link href="~/common/black_theme/css/style.css" rel="stylesheet"> (this is not working) 

按我的知识〜代表的应用 “通用”根目录是在IIS

物理路径= D:\Physicalpath\WarpFirstSite\testsite.demo 共同文件夹位置下的网站(名为testsite.demo)的根文件夹 - D:\Physicalpath\WarpFirstSite\testsite.demo\common

回答

74
  • / - 站点根目录
  • ~/ - 根目录Ø F中的应用

不同的是,如果你的网站是:

http://example.com 

而且你有一个应用程序myapp

http://example.com/mydir/myapp 

/将返回站点的根目录(http://example.com ),

~/将返回根的申请(http://example.com/mydir/)。

+0

你可以解释更多 –

+3

@Kyasa - 你需要解释什么? – Oded

+0

我对申请路径感到困惑。网站http://example.com映射到的是物理路径吗? –

5

如果你在你的链接标签添加runat="server"话,那就完美的作品....

这样....

<link href="~/common/black_theme/css/style.css" rel="stylesheet" runat="server"> 

(这也是工作)

+0

这不起作用。 我使用这个解决方案,并且渲染代码与页面的文件夹,没有与Web应用程序的文件夹。 例如: <链路HREF = “〜/ CSS/MyStyle.css” 的rel = “样式表” RUNAT = “服务器”/> 结果: HTTP://本地主机/ AppFolder/OtherFolder /〜/ CSS/myStyle的。css Css文件夹位于AppFolder下。 –

8

第二将无法工作,因为它不是由服务器端的asp.net代码以外的任何其他认可的路径。由于你的链接标签是普通的html而不是服务器控件,它永远不会被处理。

相关问题