我的层次结构如下:
share / index.html位于子域(http://www.share.foo.com而不是http://www.foo.com)。
我想从这两个域访问myImage.png
。
到目前为止,我只能找到一种方法来管理它。从index.html我将图像引用为:
img/myImage.png
从/share/index.html我将图片引用为:
http://www.foo.com/img/myImage.png
这感觉不正确,因为我不应该对我的网址这么明确。它应该与我自己的路径结构有点相关。
我想知道这里的正确解决方法是什么? share / index.html应该与index.html处于同一级别吗?如果命名约定在同一级别上都应该是index.html,那么命名约定如何适用于类似的东西呢?其他建议?
答案 0 :(得分:1)
要从“index.html”访问图像,您可以使用您当前使用的相对路径:
img/myImage.png
但是,当您在/ share /文件夹中时,您需要返回一个文件夹:
../img/myImage.png
这当然是假设您的/ share /目录位于根html文件夹中(public_html或您可能被称为的任何内容)
答案 1 :(得分:0)
您可以使用
../img/myImage.png
用于在子域中获取图片。
您可以使用多个../
返回层次结构中的任何级别
例如: ../../
将从当前级别返回两个级别。
答案 2 :(得分:0)
有两种方法可以实现这个目标
文件系统方式
如果服务器位于基于Unix(Linux)的系统上,请在/ share中创建指向/ img的符号链接。
来自shell:
~$ cd /docroot/share
~$ ln -s ../img img
这将使/img
的所有内容也显示在/share/img
下。
如果您没有对Web主机的直接shell访问权限,则可以尝试在/share
目录的本地副本中创建符号链接并将其同步到服务器。要创建符号链接,您不必拥有本地计算机上指向的位置的副本。
如果你在Windows上,NTFS supports symbolic links也是如此,但我无法告诉你它将如何同步到网络服务器。
使用低于doc_root(../img/myImage.png
)的相对路径指向HTML文档中的图像,在这种情况下无效。它将解决:http://www.share.foo.org/../img/myImage.png
<base>
标记方式
<base>
标记设置查找链接内容的基址。缺点是:它将构成相关链接内容的基础。 (样式表,图像和链接)。因此,以<a href=about.hmtl>
链接的网页将指向<base>/about.html
。
<head>
<base href="http://www.foo.com/" target="_blank">
</head>
<body>
<img src="img/myImage.png">
</body>