我们正在扩展一个网站,我们想为未来做计划,我们可能希望在子域中托管我们的图像(或者甚至可能完全是一个单独的域,例如CDN)。我们目前使用以下 HTML 在我们的 HTML/PHP 代码中引用图像:
<img src="/images/ourlogo.jpg" alt="Our Logo" />
我正在考虑开始一个公司大会以转移到:
<img src="<?php echo STAT_IMG;?>ourlogo.jpg" alt="Our Logo" />
其中 STAT_IMG 是一个全局 PHP 常量,最初定义为与当前情况相同,即
define('STAT_IMG', '/images/');
但以后可以更改为:
define('STAT_IMG', 'http://www.superfastcdn.com/');
我这样做会遇到任何问题吗?
我已经想到的事情:
- 我可以看到代码库中会有更多的字符串附加 - 但我不认为它在性能方面会很明显。
- 它使代码更丑陋(尤其是在我的 PHP 和 HTML 混合的示例中)。
- 一个问题是,有时您需要为图像显式使用 https(或副版本)。例如,如果您将图像放入电子邮件中,许多客户端(例如 gmail)使用 https 协议,因此引用 http(即未加密协议)的资源会在某些浏览器(例如 IE)中生成混合内容警告。这篇来自 encosia的文章通过定义
STAT_IMG
为“无协议”来解决这个问题,例如define('STAT_IMG', '//www.superfastcdn.com/');
. 我希望他们的想法能奏效。- 除了之前的非绝对版本 ( ) 之外
define('STAT_IMGS', 'https://www.example.com/images/');
,我们可能还需要一些其他常量来显式定义协议。define('STAT_IMGNS', 'http://www.example.com/images/');
define('STAT_IMG', '/images/');
- 除了之前的非绝对版本 ( ) 之外
- 我需要将相同的策略应用于其他静态资源,例如 javascript 和 CSS 样式表。