【发布时间】:2012-08-18 13:34:38
【问题描述】:
是否可以创建一个对所有目录都同样有效的根的相对路径?
我在不同的目录级别上有一些文档,如果从其他目录加载,我的相对路径将变为无效。
因此,如果我使用相对路径将我的文本/html 存储在数据库中,它们将无法在某些页面上运行。
相对路径示例:
../imgs/my_image.png
然后,如果我在开发网站时存储完整路径,每次我从 localhost 转向新方向或实际生产域时,所有嵌入的图像(来自 db 作为文本/html)都不会也不行。
绝对路径示例:
127.0.0.1/imgs/my_image.png
所以问题是,是否可以不指定确切的主机名,例如... pseudocode: %root%/imgs/my_image.png 或其他解决方法?
(我的意思是,无需对这些路径进行额外的服务器处理,例如使用正则表达式替换路径,或创建额外的表来存储我的图片,并且无需将所有页面移动到一个目录中,就像在 CMS 上使用相对路径时发生的那样网站。)
老实说,这让我很困扰,除了每次需要时对记录进行额外处理和更新之外,我想不出任何其他办法。但我想贡献一些我偶然发现的东西。
尽管它在 Chrome 和 IE 等现代浏览器中确实有效,但我完全怀疑这是一个正确的代码。但是,如果我使用最高级别的 root 相对路径,它恰好也适用于较低级别。
例如,假设我们有一个像这样的页面127.0.0.1/auth/profile/content/index.php,我们的图像路径是127.0.0.1/imgs/my_image.png,现在下面的代码也适用于较低级别的页面,例如127.0.0.1/auth/prof.php,甚至在根页面本身127.0.0.1/index.php:
../../../my_image.png
虽然从逻辑上讲,根文件夹中的页面上没有较低的级别。所以我也想知道更多关于它的正确或错误,以及我们是否应该在生产中使用它......
【问题讨论】:
-
对于 html 级别的内容,您可以使用
<base>指定文档级别的根目录。