像许多人一样,我正在为网站处理上传的用户图片。现在我们只是将所有内容保存为静态文件,并让浏览器使用HTML调整大小,我知道不是最理想的,因此我的问题。我想转移到一个可能更好的过程,其中提供的图像已经是正确的大小。
显然我想存放原件,但我想知道处理其他尺寸的正确方法。大多数一般照片需要以2种缩略图格式以及更大(例如小于800X600px)的格式查看。某些照片可能需要以其他一些格式显示,但每张照片将“知道”上传时所需的格式。所以我的问题是我应该存储文件的所有版本(可能是3-4个版本)并允许我的静态文件服务器保持真正的静态,或者我应该构建一个请求处理程序来重新调整原始图像的大小? (或其他一些选择)
如果我需要其他尺寸,我倾向于在节省时间生成图像并编写回填脚本。
答案 0 :(得分:2)
您有两个选项,即您提出的选项(使用服务器端重新创建各种大小的图像,然后静态存储),或者您可以使用服务器端脚本动态提供原始图像。您可以指定标题以告知浏览器强制缓存,因此您的服务器不会持续提供动态缩小的图像。
选项1优势:每次都是正确的图像。
选项1缺点:更多空间,更多文件
选项2优势:节省空间并可以动态创建更多尺寸
选项2缺点:处理能力更强,更依赖于浏览器(带宽优化不太理想)
就个人而言,我会采用静态路由,您可以使用良好的压缩/压缩技术优化文件大小,并且您明确知道您的用户正在接收正确的文件。 以Facebook,Google,Apple,CNN和维基百科如何存储他们的图像为例。当需要对每个请求进行操作时,它们都不会动态输出图像。