首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自定义标记和cfimport

自定义标记和cfimport
EN

Stack Overflow用户
提问于 2009-06-24 14:09:39
回答 5查看 3.4K关注 0票数 3

自定义标记是否适用于映射?我尽量不将CustomTags文件夹作为相对地址。

我试过了:

代码语言:javascript
复制
<cfset this.mappings["/CT"] = Expandpath("/myProjects/Project1/CustomTags")>

在Application.cfc内部,然后

代码语言:javascript
复制
<cfimport prefix="tag" taglib="/CT">

在我的页面里面,但它不是。

上面写着:

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2009-06-24 16:23:30

文档说明它与管理员ColdFusion映射页面中指定的目录一起工作。您是否尝试过在ColdFusion管理器中设置映射,以查看是否可以先进行设置?如果这样可以工作,但是application.cfc中每个应用程序设置的this.mappings都不能工作,那么这可能是一个错误?!?

taglib EDIT:我测试了Adam关于使用expandPath()函数的建议,但这也不起作用,因为标记库属性必须包含常量值。它不能包含变量或函数。除非您在ColdFusion管理器中使用映射集,否则它根本不起作用。我使用此application.cfc尝试了以下测试。

代码语言:javascript
复制
<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模板中:

代码语言:javascript
复制
<cfimport prefix="tag" taglib="#expandpath('/CT')#">

抛出错误:

此表达式必须具有常量值。

代码语言:javascript
复制
<cfset CT = expandpath('/CT')/>
<cfimport prefix="tag" taglib="#CT#">

抛出错误:

此表达式必须具有常量值。

票数 1
EN

Stack Overflow用户

发布于 2009-07-30 18:24:01

与Jayson报告的相反-我让CFIMPORT在每个应用程序映射的情况下工作得很好,而不是在CFAdmin中全局设置。CFIMPORT对映射非常敏感(例如,你不能对relativepath使用变量,也不能使用expandpath) --但是你应该能够做你所请求的没有问题的事情。

您是否在CFAdmin |设置中选中了“启用每个应用程序的设置”以允许您使用this.mappings?您运行的是什么版本的CF?我正在使用CF8和这段代码,没有任何问题:

应用程序CFC (在函数外部,但在组件中):

代码语言:javascript
复制
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中(在函数外,但在组件中):

代码语言:javascript
复制
<cfimport prefix="loader" taglib="/vp/view/_loader/">

然后我可以在CFC中使用它,它可以像预期的那样工作。

票数 2
EN

Stack Overflow用户

发布于 2009-06-24 14:50:06

我非常确定您不能对cfimport标记做任何花哨的事情。我认为你必须使用相对路径,并且你必须在每个页面上手动包含它。(而不是将其放在application.cfc文件中的某个位置或其他什么位置)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1038626

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档