维护资产的最佳实践(子域名?

时间:2011-09-05 19:12:21

标签: php html apache assets subdomain

我的网络服务器文件系统等同于以下内容:

/master-domain.tld
/master-domain.tld/assets/js/foo.js
/master-domain.tld/assets/css/bar.css

/sub1.master-domain.tld
/sub1.master-domain.tld/assets/js/foo.js

/sub2.master-domain.tld
/sub1.master-domain.tld/assets/css/bar.css
...

我想知道的是如何将我的公共静态资产(托管在主域上)提供给我的子域名 - 因为我只需要维护一组“主”资产,而不是每次编辑时,都会将所有文件更新/复制到所有其他子域。显然这可以使用绝对URL来实现,但我的目的是避免这些,以便我的本地/开发系统在我设计/调试时不需要进行任何远程调用。

目前,我为每个子域设置了mod_rewrite +符号链接+ php脚本组合,将对不存在的本地资产的任何调用链接到主资产。例如调用“/sub1.master-domain.tld/assets/css/bar.css”将检索域上托管的bar.css文件,因为本地版本的bar.css不存在。此外,调用“/sub1.master-domain.tld/assets/js/foo.js”将提供foo.js的本地版本,因为它确实存在。

但是我当前的方法似乎阻碍了我的页面加载的性能,我想知道是否有更好的(仍然是模块化的)方法来解决这个问题。

任何提示?我是以完全错误的方式解决这个问题吗?

3 个答案:

答案 0 :(得分:1)

如果符号链接全部位于同一服务器上,则应该是所有必需的链接。这应该不会导致性能下降。例如。

/sub1.master-domain.tld/assets -> /master-domain.tld/assets

如果您的子域名是从多个服务器提供的,我会设置一个mod_rewrite规则,其中包含302重定向到主域上的完整URL。在该主域服务器上,我将设置mod_expires,以便缓存资产,避免对子域上相同“缺失”资产的大多数后续请求。

答案 1 :(得分:0)

如果它们位于同一台计算机上,为什么不将不同的虚拟主机别名指向同一个文档根目录?

答案 2 :(得分:0)

我使用保留静态。为此目的的子域,并针对该域的所有请求。

相关问题