我在一些我正在改变的HTML代码中遇到了这个表单的背景图像引用。
<a style="background: url('/~/media/Images/Shared/Logos/logo.png')" href="/">Home</a>
我无法询问原作者,我不明白这里是如何评估波浪号的。
如果url字符串已启动“url('〜/ media / .....'”我理解将是媒体用户的根目录(因此您最好确保在所有部署服务器上创建该用户)但是波浪线前面的/让我很困惑。
我所做的所有搜索都会带回主目录说明,但看起来并不是这样。
[edit]这是现场网站的一部分,徽标显示正确,我只是不知道为什么。
[edit 2]该网站是使用ASP.NET构建的。
[edit 3]以上是网站上的视图/来源的网址清理版,而不是ASP代码。
[编辑4]对于那些可能很好奇的人,这是实际的工作网址。我在同一家公司工作,但是不同的部门,我正在Java EE中构建一个内部支持工具,它借用了一些样式。我看到了“/〜/ ....”并且想不出它为什么会起作用的好理由。
http://business.hibu.co.uk/~/media/Images/Shared/Logos/logo.png
答案 0 :(得分:3)
在ASP.NET中,代字号表示应用程序的根目录(不一定是网站的根目录)。但它仅在某些情况下可用(服务器控件,数据绑定的控件,或有时标题在script
或link
的头部。)
我不认为常规正文中的a
标记会处理它,我认为ASP.NET不允许代字号除了字符串的开头之外的任何地方。
所以我猜你实际上只有一个名为~
的物理目录。在Windows中,我认为代字号没有任何特殊含义,因此它不是用户的主目录或类似内容 - 只是常规目录的一个时髦名称。
修改强>
在阅读你的评论后,这是它在浏览器中呈现的方式,并且它正在运行,我几乎肯定你的网络服务器上有一个名为~
的真实目录。无论是那种或某种URL重写,你需要看到web.config或IIS设置才能看到它。
答案 1 :(得分:-1)
这可能来自他们的本地机器,意味着他们的主目录。如果从开发计算机复制资产路径,它永远无法从远程服务器正确解析。
否则它是相对于其服务器上主目录的路径。