不要自定义标签与映射工作? 我想不会有解决CustomTags文件夹作为相对地址。

我已经试过:

<cfset this.mappings["/CT"] = Expandpath("/myProjects/Project1/CustomTags")>

的Application.cfc的内部,然后

<cfimport prefix="tag" taglib="/CT">

我的网页里面,但它没有。

它说:

无法导入通过/ CT指定的标记库。 遇到以下错误:C:\的Inetpub \ wwwroot的\ CT。确保您已指定一个有效的标签库。

有帮助吗?

解决方案

该文档称它与在管理员的ColdFusion映射页面中指定的目录。您是否尝试过设置在ColdFusion管理员的映射,看看是否能工作的第一?如果这样的作品,但在每次的Application.cfc应用程序设置的this.mappings不工作,则可能是一个错误吗?!?

修改 我测试了亚当的建议,使用expandPath()函数,但是这也不起作用,因为标签库属性必须包含一个恒定值。它不能包含变量或函数。它根本没有工作,除非你在ColdFusion管理员使用映射集。我试图使用此的Application.cfc以下试验。

<cfcomponent>

    <cfset this.name = "TestApp" />
    <cfset this.loginStorage = "session" />
    <cfset this.sessionManagement = true />
    <cfset this.setClientCookies = true />
    <cfset this.setDomainCookies = false />
    <cfset this.sessionTimeOut = CreateTimeSpan(0,12,0,0) />
    <cfset this.applicationTimeOut = CreateTimeSpan(1,0,0,0) />
    <cfset this.mappings['/CT'] = "C:\apache\htdocs\myProjects\Project1\CustomTags"/>

</cfcomponent>

和这个在一个ColdFusion模板:

<cfimport prefix="tag" taglib="#expandpath('/CT')#">

抛出的错误:

  

此表达式必须具有恒定的   值。

<cfset CT = expandpath('/CT')/>
<cfimport prefix="tag" taglib="#CT#">

抛出的错误:

  

此表达式必须具有恒定的   值。

其他提示

相反的是杰森报道 - 我有CFIMPORT工作得很好瓦特/每个应用程序映射VS之一CFAdmin全局设置。 CFIMPORT是相当古怪约映射(比如你不能使用变量relativepath,也不能使用expandpath) - 但你应该能够做到你要求的w / o问题是什么

你有“启用每个应用程序设置”中选中CFAdmin |设置允许您使用this.mappings的?什么版本的CF,你运行?我使用CF8与此代码,没有任何问题:

应用CFC(功能之外,但W /组分):

this.rootPath = getDirectoryFromPath(getCurrentTemplatePath());  // this assures path of application.cfc is used to determine path, likely equivalent to expandPath("/")
structInsert(this.mappings, '/vp', this.rootPath);

在CFC(功能之外,但W /组分):

<cfimport prefix="loader" taglib="/vp/view/_loader/">

我然后可以在使用CFC和它按预期工作。

我敢肯定你不能做任何幻想与cfimport标签。我认为你必须使用相对路径,你必须手动包括它的每一页上。 (相对于把它在的Application.cfc文件某处或任何)

我敢肯定, expandPath 尊重CF映射。您是否尝试过这样的事情?

<cfset this.mappings["/CT"] = Expandpath("/myProjects/Project1/CustomTags")>

<cfimport prefix="tag" taglib="#expandPath('/CT')#">

我已经证实了它...你不能经由的Application.cfc的“this.mappings”结构使用创建的映射。

从Adobe文档(ColdFusion的9):

  

的路径必须是相对于幅材   根(并开始与/)时,电流   页面位置,或目录   在管理员指定的   ColdFusion的映射页面。

CFImport为CF 9

不知道为什么的Application.cfc映射只是工作有关的一切,但是这一点。令人失望的那种,因为我曾经爱过的管理员定义尽可能少的想法。我喜欢只是压缩和解一个应用程序和任何地点部署它。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top