设定你的根目录
作者:Kyle2/16/03
内容:
设定你的根目录
网站开发人员向来都一直必须在相对路径vs.绝对路径这项议题上面打转。在ColdFusion环境里面,你可以在多个不同页面使用CFINCLUDE卷标,不过既然我们对于在哪个目录里面将会用到CFINCLUDE语法,因此在CFINCLUDE卷标里面使用相对路径经常会造成很多麻烦。
举例来说,某个被包含的选单里面可能有一个指向网站首页的连结,像下面这样:
<AHREF="index.cfm">HomePage</A>
在网站根目录下面的任何档案引入这个包含档都不会有问题。但是如果你在某个次目录下的一个档案里面引入这个选单档案,那么上面这个超链接便会失效,或者至少会连结到错误的页面去。这时候你实际上会希望这个超链接是写成这样:
<AHREF="../index.cfm">HomePage</A>
有两种方式可以克服这个问题。一个是在超链接里面直接使用绝对路径。要使用这个作法,你必须在ColdFusion里面预先设定好一个路径对应关系(mapping)。你可以在ColdFusion管理员(ColdFusionAdministrator)的「路径对应(Mappings)」区块里面建立这些对应关系。一旦你建立好了路径对应关系,你便可以把指向网站首页的超链接写成下面这个样子:
<AHREF="/mymapping/index.cfm>HomePage</A>
如果你使用了绝对路径,那么不论你在那个位置引入这个档案,该档案里面的超链接永远都会保持有效。我通常使用一个叫做APPLICATION.RootDir的应用程序变量来储存这项路径对应设定,并且在超链接里面直接套用这个变量。使用这个作法,如果我真有必要修改目录结构或者路径对应的名称,那么我只需要修改这么一个变量的值就可以了。
<CFSETAPPLICATION.RootDir="/MyMapping">
如果你套用这个变量,你的超链接看起来会像下面这样:
<AHREF="#APPLICATION.RootDir#/index.cfm">
在每个页面的开端建立这样的变量,那么你就可以在该页面的其它部分套用这个变量的值。包含档案运作起来就像该档案的内容实际上真的被写入原有页面一样,因此如果档案A引入了档案B,那么在档案B里面我们便可以直接参照到档案A里面的变量值:
<->
<CFSETRootDir="../">
<->
<AHREF="#RootDir#news/newspage.cfm"></code>
当前1/6页123456下一页阅读全文