我正在开发一个Web应用程序,我决定(在阅读了很多关于SO的文章后)将实际图像存储在文件系统中并将元数据存储在数据库中.
我应该存储相对路径还是绝对路径.
我可以想到每个选择的一些优点.
绝对:
优点:
很明显,文件在哪里读取数据库的其他应用程序
可以将照片放在驱动器上的任何位置(需要处理程序)
缺点:
需要将absoulte路径转换为在站点中使用的相对路径或创建处理程序
如果我迁移到另一台服务器,我可能需要更改所有路径
相对:
优点:
只需添加链接到HTML,它就可以了
缺点:
如果我更改应用程序根目录,我必须移动图片或更改所有路径
必须将图片放在公共目录中(或者我在绝对路径上没有任何收获)
好的,这些是我脑子里正在发生的一些事情.
我无法决定.
我会在数据库中存储一个相对路径.这为您提供了最大的灵活性.加载图像很简单,可以在"IMAGE_ROOT"变量(可能是可配置的)之前添加文件系统路径.这很重要,因为您可能想要移动存储图像的位置(例如,将它们放在更快的驱动器上).然后它只是改变可配置的IMAGE_ROOT.
将图像引用放入页面时,我会输入完整的URL.同样,这只是将URL_ROOT添加到相对路径.如果您发现负载需要专用服务器来提供图像,这使您能够轻松切换服务器.