样式表路径中的斜线 (/) 与波浪线斜线 (~/)
Posted
技术标签:
【中文标题】样式表路径中的斜线 (/) 与波浪线斜线 (~/)【英文标题】:Slash (/) vs tilde slash (~/) in style sheet path 【发布时间】:2011-09-19 10:16:29 【问题描述】: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)
如何解决这些路径?
为什么生成的路径不同?
在这种情况下我应该选择哪一个?
据我所知,~
代表应用程序的根目录。
“common”是 IIS 中网站根目录下的文件夹(名为 testsite.demo
)。
物理路径:D:\Physicalpath\WarpFirstSite\testsite.demo
“普通”文件夹:D:\Physicalpath\WarpFirstSite\testsite.demo\common
【问题讨论】:
【参考方案1】:如果您在链接标签中添加runat="server"
,那么它会完美运行....
像这样……
<link href="~/common/black_theme/css/style.css" rel="stylesheet" runat="server">
(这也有效)
【讨论】:
这行不通。我应用此解决方案,并使用页面文件夹呈现代码,而不使用 Web 应用程序文件夹。示例: 结果:localhost/AppFolder/OtherFolder/~/CSS/MyStyle.css Css 文件夹在 AppFolder 下。【参考方案2】:第二个不起作用,因为它不是服务器端的 asp.net 代码以外的任何东西都可以识别的路径。而且由于您的链接标记是常规 html 而不是服务器控件,因此它永远不会被处理。
【讨论】:
【参考方案3】:/
- 站点根目录
~/
- 应用的根目录
不同之处在于,如果您的网站是:
http://example.com
你有一个应用程序myapp
on:
http://example.com/mydir/myapp
/
将返回站点的根目录 (http://example.com
),
~/
将返回应用程序的根 (http://example.com/mydir/
)。
【讨论】:
@Kyasa - 你需要解释什么? 我对应用程序路径感到困惑。是站点example.com 映射到的物理路径吗? @Kyasa - 它是 IIS 虚拟应用程序。见这里 - learn.iis.net/page.aspx/150/… 不错的链接。所以我们可以在链接标签中使用~而不用 runat=server 标签? @Kyasa - 不,这是服务器端功能。以上是关于样式表路径中的斜线 (/) 与波浪线斜线 (~/)的主要内容,如果未能解决你的问题,请参考以下文章