样式表路径中的斜线 (/) 与波浪线斜线 (~/)

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 - 不,这是服务器端功能。

以上是关于样式表路径中的斜线 (/) 与波浪线斜线 (~/)的主要内容,如果未能解决你的问题,请参考以下文章

关于路径分隔符:正斜线/反斜线双反斜线\的区别

020100——00001_绝对路径与相对路径

excel斜线表头怎么设置边框宽度

word里怎么再表格里加入斜线,然后写字

GIT使用—分支与合并

javascript 修剪额外斜线的路径