从子域加载图像?

时间:2013-12-03 18:32:16

标签: html

我的层次结构如下:

  • 的index.html
  • /share/index.html
  • /img/myImage.png

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,那么命名约定如何适用于类似的东西呢?其他建议?

3 个答案:

答案 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>