如何使用带有子文件夹的CFINCLUDE设置导航?

时间:2015-04-14 16:12:22

标签: html5 coldfusion

我想在ColdFusion和我们的CFINCLUDE中设置一个带导航链接的页面,以便在每个页面上拉入导航。如果我将所有页面保留在根文件夹中,导航工作正常,但我想在子文件夹中组织我的页面。当我链接到:

<a href="pages/page2.cfm">Page 2</a> 

我转到第二页,但在尝试回到时:

<a href="page1.cfm">Page 1</a> 

我收到以下错误:找不到文件:navigationtest / pages / page1.cfm。

我知道您需要使用../如果我将导航放在每个单独的页面上,就像它与子文件夹一样,但我想要一个带有导航的页面,并在所有其他页面上包含它。

如何设置导航以使其适用于ColdFusion中的子文件夹?

这是我的文件结构:

enter image description here

这是我的包含页面:

enter image description here

这是我的页码(在所有页面上都相同,除了在正文中它是相应的页面名称(即 - 默认,第1页,第2页):

enter image description here

2 个答案:

答案 0 :(得分:1)

如果您有一个全局布局文件,一个启动<html>标记的文件,请添加<base href="{domain}" >标记,所有锚点(<a>)标记都会将其用作所有标记的根目录链接,图像等。

或者,您可以将所有链接,图像等href值更改为以前导斜杠开头。这告诉浏览器从网站的根目录开始,然后从那里查看。

所以而不是

<a href="page1.cfm">Page 1</a> 

使用

<a href="/page1.cfm">Page 1</a>

然后,如果你在第3级文件夹中,那么指向page1.cfm的链接将始终从网站的根目录而不是相对于当前文件夹,这就是现在正在发生的事情。

就个人而言,我会使用像ColdBoxFW/1这样的框架,其中所有网址都是从根驱动的,布局可以在没有所有CFINCLUDE的地方处理。

答案 1 :(得分:1)

我会将所有导航链接设置为以root身份开头。像这样:

<a href="/default.cfm">Home</a>
<a href="/page1.cfm">Page 1</a>
<a href="/pages/page2.cfm">Page 2</a>

因此,即使您在第2页,浏览器也会在根目录中而不是在/ pages文件夹中查找page1.cfm。