如果我使用子域,则图像的URL

时间:2011-06-12 18:50:52

标签: php html

如果我使用子域,我有一个与图像的URL相关的问题。 例如,如果图像位于地址

http://www.mydomain.com/images/photo.jpg

如果我想使用子域来加速页面加载,在这种情况下子域名是:

http://img.mydomain.com

如果我使用子域名,应该如何看待图片foto.jpg的网址?

子域名的路径:

/home/mydomain/public_html/img/

图片文件夹的路径:

/home/mydomain/public_html/images/

2 个答案:

答案 0 :(得分:6)

只需在您的img子域中添加别名,并保持相同的结构。这样,如果您将来需要更改它将是透明的

编辑:

对于资产拥有多个子域也很好。比如img01 img02等等。但这些子域名是否一致。

就好像你的图片image1.jpg定位到

一样

http://img01.domain.com/images/image1.jpg

下次imagen出现在代码中时应显示为

http://img01.domain.com/images/image1.jpg

而不是

http://img02.domain.com/images/image1.jpg

因此缓存可以优化通话

我通常使用这个公式

  return sprintf("http://img%02s.domain.com", abs(crc32($imagename) % (9)));

这样子域将始终与图像名称

一致

编辑2:

浏览器limit the amount of connection打开对等服务器。因此,通过拥有多个子域,您可以faking这样,从而提高页面的加载速度。

但另一方面,如果对于同一图像,您从more加载它而不是一台不同的服务器,则浏览器的缓存无法运行,因为它不知道您要加载相同的图像。

因此,通过对图像名称进行散列,您将获得始终相同的服务器,然后获得两全其美:更多连接打开 AND 浏览器缓存

答案 1 :(得分:2)

如果子域的文档根目录是:

/home/mydomain/public_html/img/

你的照片是:

/home/mydomain/public_html/images/

然后你将无法访问它们。你必须导航到http://img.mydomain.com/../images/photo.jpg,出于非常明显的安全原因,这是不可能的。

您的子域名的文档根目录应为:

/home/mydomain/public_html/images/

然后你的网址是:

http://img.mydomain.com/photo.jpg