在文件系统中存储图像时,使用相对路径或绝对路径?

Sru*_*uly 2 database language-agnostic architecture image

我正在开发一个Web应用程序,我决定(在阅读了很多关于SO的文章后)将实际图像存储在文件系统中并将元数据存储在数据库中.

我应该存储相对路径还是绝对路径.

我可以想到每个选择的一些优点.

绝对:

优点:

很明显,文件在哪里读取数据库的其他应用程序
可以将照片放在驱动器上的任何位置(需要处理程序)

缺点:

需要将absoulte路径转换为在站点中使用的相对路径或创建处理程序
如果我迁移到另一台服务器,我可能需要更改所有路径

相对:

优点:

只需添加链接到HTML,它就可以了

缺点:

如果我更改应用程序根目录,我必须移动图片或更改所有路径
必须将图片放在公共目录中(或者我在绝对路径上没有任何收获)

好的,这些是我脑子里正在发生的一些事情.

我无法决定.

Tra*_*sen 7

我会在数据库中存储一个相对路径.这为您提供了最大的灵活性.加载图像很简单,可以在"IMAGE_ROOT"变量(可能是可配置的)之前添加文件系统路径.这很重要,因为您可能想要移动存储图像的位置(例如,将它们放在更快的驱动器上).然后它只是改变可配置的IMAGE_ROOT.

将图像引用放入页面时,我会输入完整的URL.同样,这只是将URL_ROOT添加到相对路径.如果您发现负载需要专用服务器来提供图像,这使您能够轻松切换服务器.