Coldfusion MX技巧精华收集

页面导航:首页 > 脚本专栏 > ColdFusion > Coldfusion MX技巧精华收集

Coldfusion MX技巧精华收集

来源:互联网 作者:脚本宝典 时间:2015-07-24 13:17 【

设定你的根目录 作者:Kyle2/16/03 内容: 设定你的根目录 网站开发人员向来都一直必须在相对路径vs.绝对路径这项议题上面打转。在ColdFusion环境里面,你可以在多个不同页面使用CFINCLUDE卷

设定你的根目录  

作者: Kyle 2/16/03  

内容:  

设定你的根目录 
网站开发人员向来都一直必须在相对路径 vs. 绝对路径这项议题上面打转。在 ColdFusion 环境里面,你可以在多个不同页面使用 CFINCLUDE 卷标,不过既然我们对于在哪个目录里面将会用到 CFINCLUDE 语法,因此在 CFINCLUDE 卷标里面使用相对路径经常会造成很多麻烦。  

举例来说,某个被包含的选单里面可能有一个指向网站首页的连结,像下面这样:  

<A HREF="index.cfm">Home Page</A>  
在网站根目录下面的任何档案引入这个包含档都不会有问题。但是如果你在某个次目录下的一个档案里面引入这个选单档案,那么上面这个超链接便会失效,或者至少会连结到错误的页面去。这时候你实际上会希望这个超链接是写成这样:  

<A HREF="../index.cfm">Home Page</A>  
有两种方式可以克服这个问题。一个是在超链接里面直接使用绝对路径。要使用这个作法,你必须在 ColdFusion 里面预先设定好一个路径对应关系(mapping)。你可以在 ColdFusion 管理员(ColdFusion Administrator)的「路径对应(Mappings)」区块里面建立这些对应关系。一旦你建立好了路径对应关系,你便可以把指向网站首页的超链接写成下面这个样子:  

<A HREF="/mymapping/index.cfm>Home Page</A>  
如果你使用了绝对路径,那么不论你在那个位置引入这个档案,该档案里面的超链接永远都会保持有效。我通常使用一个叫做 APPLICATION.RootDir 的应用程序变量来储存这项路径对应设定,并且在超链接里面直接套用这个变量。使用这个作法,如果我真有必要修改目录结构或者路径对应的名称,那么我只需要修改这么一个变量的值就可以了。  

<CFSET APPLICATION.RootDir = "/MyMapping">  
如果你套用这个变量,你的超链接看起来会像下面这样:  

<A HREF="#APPLICATION.RootDir#/index.cfm">  
在每个页面的开端建立这样的变量,那么你就可以在该页面的其它部分套用这个变量的值。包含档案运作起来就像该档案的内容实际上真的被写入原有页面一样,因此如果档案 A 引入了档案 B,那么在档案 B 里面我们便可以直接参照到档案 A 里面的变量值:  

<!--- 在每个页面设定 RootDir 变量值 ---> 
<CFSET RootDir ="../"> 
<!--- 在被引入的页面中参照 RootDir 变量的值(只要确定这个变量确实有被定义即可,否则在引入档案的时候会出现错误讯息) ---> 
<A HREF="#RootDir#news/newspage.cfm"></code>

使用自订卷标来设定版面配置 
ColdFusion 的自订卷标功能让你能够将任何你想象得到的功能封装成一个简单易用的包装。虽然这项功能早在几年前便是 ColdFusion 服务器的功能之一,但是从 4.0 版本开始,你可以在自订卷标里面使用启始与结尾卷标。为了说明如何使用自订启始与结尾卷标,在下面这个范例里面我们将网页内容包装在一个自订卷标里面,并且提供版面配置与格式化的相关功能。  

想想看,如果在某个普通页面里头可以使用下面这样的写法,那不是很棒吗!  

<CF_FormatPage Title="My Page Title"> 
这里是你的页面主要区域的内容。请注意我们在这里并没有加入表格或者 <BODY> 卷标之类的东西。  

</CF_FormatPage>  

整个页面原始码就是这样了。其它所有版面配置与格式化信息都被隐藏在主要内容外面的自订卷标里面。为了能够在你的自订卷标里面使用启始与结尾卷标,你必须先了解自订卷标的两种使用状态。你可以透过 #ThisTag.ExecutionMode# 这个变量的值来判断目前被使用的是启始或者是结尾卷标。基本上你的自订卷标内容会被执行两次:一次是遇到启始卷标的时候,另一次便是遇到结尾卷标的时候。为了不让这篇文章显得过于冗长,在这里我们并不加入太多格式化的相关程序代码,但是下面这个基本的 CF_FormatPage 自订卷标应该足够让你了解我们刚才提到的观念:  

<!--- 以下是 CF_FormatPage 自订卷标档案内容 ---> 
<!--- 如果执行模式是「Start」,表示我们遇到的是启始卷标,因此我们显示页面格式的前半段 ---> 
<CFIF ThisTag.ExecutionMode IS "Start">  

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">  

<HTML> 
<HEAD> 
<TITLE><CFOUTPUT>#ATTRIBUTES.Title#</CFOUTPUT></TITLE> 
</HEAD>  

<BODY>  

上面这段内容可以包含页面标题图片,选单或者其它内容。  

<!--- 被包含在这个卷标里面的其它内容则会接着在这里显示 --->  

<!--- 如果执行模式是「End」,表示我们遇到了结尾卷标,因此我们显示页面格式的后半段 ---> 
<CFELSEIF ThisTag.ExecutionMode IS "End">  

<BR><BR>这里是页面的页尾区域,在这里你可能会放入内容连结或者版权宣告文字。  

</BODY> 
</HTML>  

</CFIF>  

你能做的东西当然比这个简单例子多得更多,例如加入动态选单,针对每个页面加入不同的标题图片等等。或者换一种作法,你可以针对不同状况建立不同的自订卷标来把版面配置封装起来,只要能够符合你自己的特定需求就行了。 

Tags:

文章评论

最 近 更 新
热 点 排 行
Js与CSS工具
代码转换工具

<