如果我使用子域,我有一个与图像的URL相关的问题。 例如,如果图像位于地址
http://www.mydomain.com/images/photo.jpg
如果我想使用子域来加速页面加载,在这种情况下子域名是:
http://img.mydomain.com
如果我使用子域名,应该如何看待图片foto.jpg的网址?
子域名的路径:
/home/mydomain/public_html/img/
图片文件夹的路径:
/home/mydomain/public_html/images/
答案 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)));
这样子域将始终与图像名称
一致浏览器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