将 css、js 和媒体文件夹分开在子域(例如
)下有什么好处css.domain-name.com
js.domain-name.com
media.domain-name.com
我知道可扩展性从静态/媒体文件开始,但是从子域提供它们有什么优势吗?
如果是这样,我应该在什么程度上这样做?例如,如果我允许照片上传,我是否应该将“uploads”文件夹放在 media
子域下?
谢谢
最佳答案
我会将上传与通用布局中使用的静态文件(例如 Logo 、图标等)分开,因此清除现有文件以上传新设计要容易得多,而不必担心上传不会被删除。删除/覆盖。
至于域名,我不会那样分割文件。一个子域用于静态文件,一个子域用于上传 - 很好。但我不会为脚本或样式表添加一个。
不过,使用子域可能有优势,根据网络服务器,您可以配置整个虚拟主机以遵守特定规则,例如不提供目录列表或不允许访问图像以外的任何文件 - 或拒绝提供热链接文件(不必担心特定的子目录)。它还可以让以后更轻松地将文件移动到另一台主机,例如用于媒体文件或下载到云托管服务。
考虑到您的示例,我将使用以下子域:
www.domain-name.com (basic web presence)
static.domain-name.com or media.domain-name.com (serving support files like js, css, images, etc. - stuff that doesn't change and can be cached for a long time)
uploads.domani-name.com (serving uploaded files)
不要使其过于复杂,因为这样您不会获得任何额外的性能(除非使用不同的服务器并且您预计负载很重)。事实上,页面加载可能会更慢(由于额外的 DNS 查找),并且您可能会遇到安全限制,例如关于 cookie 有效性/可访问性或跨域脚本。
关于static-libraries - 拥有 css、js 和 media 子域的优点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6716523/