php - 跨(子域?)维护 Assets 的最佳实践

标签 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
...

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

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

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

有什么建议吗?我是不是以完全错误的方式解决了这个问题?

最佳答案

如果它们都在同一台服务器上,则符号链接(symbolic link)应该是所有必需的。这应该不会对性能造成任何影响。例如。

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

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

关于php - 跨(子域?)维护 Assets 的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7311930/

相关文章:

php - 使用叠加层在 map View 中显示位置列表

html - IE 显示问题 : Fieldset size not being determined by content, 和内联显示会导致其他问题

php - 为 seo 优化和 google 引用重写 url

javascript - 在 JavaScript 上访问 DOM

jquery - 更新标签的文本或 html 不起作用并且不会引发任何错误

php - 为什么使用相同的数据会得到不同的结果?

php - 警告 : Unknown: Unable to create temporary file, 检查临时文件目录中的权限。在第 0 行的未知中

php - 函数中的多个数组未显示在使用 php mysql 的结果中

java - Php 与 Java 数据库字符串比较

php - 如何在不使用 URL 的情况下在 Facebook 上分享我的新闻