1

我在一些我正在更改的 HTML 代码中遇到了此表单的背景图像参考。

<a style="background: url('/~/media/Images/Shared/Logos/logo.png')" href="/">Home</a>

我无法询问原作者,我不明白这里的波浪号是如何评估的。

如果 url 字符串以 "url('~/media/.....'" 开头,我理解它将是媒体用户的根目录(所以你最好确保在所有部署服务器上创建该用户),但是/ 前面的波浪号让我很困惑。

我所做的所有搜索都只是带回了主目录解释,但似乎并非如此。

[编辑] 这是现场网站的一部分,徽标正确显示,我只是不知道为什么。

[编辑 2] 该站点是使用 ASP.NET 构建的。

[编辑 3] 以上是来自站点上的视图/源的 url 的清理版本,而不是 ASP 代码。

[编辑 4] 对于那些可能好奇的人,这里是实际的工作 url。我在同一家公司工作,但在不同的部门工作,我正在使用 Java EE 构建一个内部支持工具,它借用了一些样式。我看到了“/~/....”,但想不出一个很好的理由。

http://business.hibu.co.uk/~/media/Images/Shared/Logos/logo.png
4

2 回答 2

3

在 ASP.NET 中,波浪号表示应用程序的根(不一定是网站的根)。但它仅在某些情况下可用(服务器控件、数据绑定的控件,或者有时头部部分中的标签,如scriptlink)。

我不认为a常规正文中的标记会处理它,而且我认为 ASP.NET 不允许波浪号去任何地方,除了字符串的开头。

所以我猜你实际上只是有一个名为~. 在 Windows 中,我不认为波浪号有任何特殊含义,所以它不是用户的主目录或类似的东西 - 只是一个普通目录的时髦名称。

编辑

在阅读您的评论后,这是它在浏览器中呈现的方式,并且它正在工作,我几乎可以肯定~在您的 Web 服务器上调用了一个真正的目录。要么是这样,要么是某种 URL 重写正在进行,您需要查看 web.config 或 IIS 设置才能看到。

于 2013-04-17T17:11:34.563 回答
0

这很可能来自他们的本地机器,即他们的主目录。如果资产路径是从他们的开发机器复制的,它永远无法从远程服务器正确解析。

否则,它是相对于其服务器上主目录的路径。

于 2013-04-17T16:58:32.270 回答