首页 > 解决方案 > 从同一文件夹中的 2 个文件到同一图像的 img 标签中的相对路径不同

问题描述

我在同一个文件夹中有 2 个 cfm 页面,做的事情非常相似。他们都为用户相关数据生成一些报告。我最近添加了一个加载图像,因为生成报告的一些查询可能需要一段时间。

第二页是一个新的但非常相似的页面。由于页面位于同一个文件夹中,我认为加载图像的相对路径应该相同。但是,新页面为图像请求提供 404 响应,当我检查 http 请求标头时,它会在相对路径中添加一个额外的文件夹,因此无法找到图像。

<img src="../../../Graphics/General/loading.gif">

它们都是非常相似的页面,因为它们显示一个简单的表单,然后运行一些查询并生成一个表以向用户显示相关数据。然而,上面的相对路径在一个页面中生成“Dev/Menu/Graphics/General/loading.gif”,在另一页中生成“Dev/Graphics/General/loading.gif”。

从那以后,我发现在新文件的图像路径中添加一个额外的“../”已经为新页面修复了它,但是我不知道为什么这个修复是必要的以及它为什么起作用。

<img src="../../../../Graphics/General/loading.gif">

我希望由于两个页面都位于同一个文件夹中,因此给定图像的相对路径将完全相同。我主要只是好奇为什么不是这样。

标签: htmlimagecoldfusionloadingrelative-path

解决方案


这两个报告在同一个文件夹中。您是直接加载这些页面吗?

 yourSite.com/reports/report1.cfm
 yourSite.com/reports/report2.cfm

还是这些文件是通过其他父页面加载的?

 yourSite.com/some/other/folder/with/include_report1.cfm
 yourSite.com/yet/another/folder/that/contains/include_report2.cfm

通常,最好直接从 Web 根目录加载图像,以避免此类相对路径问题。如果Graphics文件夹位于根目录,则只需在两个文件中引用图像,如下所示:

<img src="/Graphics/General/loading.gif">

这样,无论什么文件包含它们并将最终的 HTML 呈现给浏览器都无关紧要,无论如何都将从 Web 根目录引用图像。


推荐阅读