【发布时间】:2013-04-10 13:24:28
【问题描述】:
我在一些我正在更改的 HTML 代码中遇到了此表单的背景图片引用。
<a style="background: url('/~/media/Images/Shared/Logos/logo.png')" href="/">Home</a>
我无法询问原作者,我不明白这里是如何评估代字号的。
如果 url 字符串以 "url('~/media/.....'" 开头,我知道这将是媒体用户的根目录(因此您最好确保在所有部署服务器上创建该用户) 但是波浪号前面的 / 让我感到困惑。
我所做的所有搜索都只是带回了主目录说明,但似乎并非如此。
[edit] 这是一个实时站点的一部分,徽标正确显示,我只是不知道为什么。
[编辑 2] 该网站是使用 ASP.NET 构建的。
[编辑 3] 上面是来自站点上的视图/源的 url 的清理版本,而不是 ASP 代码。
[edit 4] 对于那些可能好奇的人,这里是实际工作的 url。我在同一家公司工作,但在不同的部门工作,我正在使用 Java EE 构建一个内部支持工具,它借用了一些样式。我看到了“/~/....”,但想不出一个很好的理由。
http://business.hibu.co.uk/~/media/Images/Shared/Logos/logo.png
【问题讨论】:
-
这不太可能与 Unix 使用波浪号的用途有关。将 webroot 设置为服务器的根目录需要一个非常笨拙的网络管理员。
-
您使用的是什么服务器技术?在 ASP.NET 中,在某些控件上,有时可以在 URL 的开头使用波浪号来引用 Web 应用程序的根。但我不认为 ASP.NET 会允许它像这样在中间。此外,如果是服务器使用它,它在浏览器中呈现时会呈现不同的呈现方式。如果你在页面上查看源代码,波浪号还在吗?
-
图像是否显示它应该显示的内容?如果是这样,请检查用户主文件夹
-
嗯,在 Unix 系统上,
~media将是媒体用户的根。但是,我认为/~/实际上是一个名为~的目录——无论网络服务器是否以任何特殊方式处理它,我们都无法告诉你。