Does the opposite of expandPath. Tries to match a given absolute path to mappings in the environment and will return a path that is contracted by the shortest matched mapping. If there are no matches, Lucee returns the absolute path it was given.

ContractPath( path [, placeholder ] )

Returns: String

Argument Description
string, required

An absolute path.

boolean, optional

A boolean indicating whether Lucee placeholder names should be prefixed to the path.

Default: false.


Assume the following folder structure:

\___ luceecode
    \___ contractpath
    |   \___ example.cfm
    \___ otherdirectory
        \___ example.cfm

And assume the following mappings:

  • /contractdemo = /homefolder/luceecode/contractpath
  • /luceestuff = /homefolder/luceecode
writeOutput( expandPath('example.cfm') );
// Outputs: /homefolder/luceecode/contractpath/example.cfm
writeOutput( contractPath( expandPath('example.cfm') ) );
// Outputs: /contractdemo/example.cfm
writeOutput( contractPath( expandPath('../otherdirectory/example.cfm') ) );
// Outputs: /luceestuff/otherdirectory/example.cfm
writeOutput( contractPath( expandPath('../../'), true ) );
// Outputs: /{home-directory}

See also