我不确定这是否属于服务器故障或是否属于软件工程,但由于这很可能涉及托管我的网站和相关文件的服务器端,我相信这里可能更合适。如果我错了,请告诉我,以便我们可以将问题迁移到正确的位置。
此外,我不确定哪种标签最适合我,因为我主要是一名软件开发人员,这是我的第一次经历,我没有一个服务器团队来处理这些类型的想法或至少协助他们。
我最近继承了一个加载了大约 1.8GB 图像文件的网站。其中大部分很可能不再使用,但我目前没有时间对它们进行分类并确定哪些可以留下,哪些可以离开。
最重要的是,最近,我收到了一个请求,要为这个已经很大的项目添加大约 105MB 的图像文件。如果我们当前没有将所有这些图像存储在源代码管理中,我一点也不介意。
这使得部署、映射、分支和合并非常耗时且乏味,因此我想要一种将基于内容的文件与代码文件分离的方法,基本上将项目剥离到它的基本框架(将来)并从中提取文件仅在需要时更新的备用位置,并消除了源代码控制中的额外占用空间(以及在我的硬盘驱动器上,因为我目前在我的本地机器上拥有同一个完整项目的 8 个不同分支,用于开发、测试、原型制作等) .
再说一次,我没有太多时间来解决这个问题,但是有了新的请求,我想阻止自己对这个问题做出贡献,而是把精力集中在一个可以添加所有内容的长期解决方案上我的新内容会在时间允许的情况下慢慢过渡到其他内容。
到目前为止,我提出的唯一理论是在我的 Web 服务器上创建一个子域,该子域专门用于保存我可以通过我的主域中的网址提取的内容文件。我不确定这是一个好方法,但我正在考虑的方式可能是。
- 什么是符合最佳实践的可靠选择?
- 这种类型的分离有哪些潜在的陷阱?
更新
- 当前锁定到 TFS 以进行源代码控制。
- 想从源代码管理中删除图像。
子域
将所有图像内容放在子域上会有所帮助。浏览器对来自单个域的内容的并发能力有限。从浏览器的角度来看,子域被认为是一个单独的域。所以应该减少下载时间。
托管
另一种可能性是将图像存储在图像托管服务上。这可以节省您的图像管理,减少站点网络带宽和加载时间。一些服务具有全球覆盖 (CDN),因此可以从最近的节点下载媒体内容,从而减少页面加载时间。
部署
请注意,您的主机可能允许也可能不允许子域存在于您网站的文档根目录之外。
源代码控制
在处理过大型源存储库和它们存在的问题之后,从存储库中删除所有静态内容将有很大帮助。这是一个使您的源代码控制安全面临风险的负担。当我们将一个巨大的存储库从我们的服务器迁移到一个非常知名的托管存储库服务时,我们不得不失去多年的历史,因为我们的一个存储库规模很大。
git LFS 是 git 处理大文件的解决方案
您可以按照这些链接设置 git LFS https://docs.gitlab.com/ee/workflow/lfs/manage_large_binaries_with_git_lfs.html