에서 Application.cfc를 확장 할 수 있지만. Sean Corfields의 ApplicationProxy.cfc 솔루션을 살펴 보았습니다. 프로젝트가 내 루트 폴더에 있지 않은 경우입니다.루트
루트
답변
나는 onRequestStart와 onApplicationStart에 includes를 사용합니다. 그런 식으로 다른 Application.cfc를 작성할 때 코드를 포함 할 수 있습니다.
App.cfC# 1을 포함하는 디렉토리에 대한 매핑을 만들 수 있습니까? 그렇다면 "yourMappingName.application"을 확장 할 수 있습니다.
두 당신이 확장 할 필요가 Application.cfc 루트에있는 경우 작동합니다 =. "응용 프로그램" 및 는 = 확장 "/ 응용 프로그램"을 확장합니다.
Sergii에게 감사하지만 1 번은 루트에 없습니다. –
그렇다면 왜 extends = "ProjectName.Application"을 설정할 수 없습니까? – Sergii
dev에 대해서는 \ ProjectName에 있지만 프로덕션에서는 루트에 있습니다. –
루트에서 AppProxy.cfc라는 파일을 만듭니다. 그 내용은 이렇게 있습니다 :
<cfcomponent output="false" extends="application" displayname="Application.cfc Proxy" hint="Extends the root application object so that subdirectories may extend it.">
</cfcomponent>
그런 다음 하위 디렉토리에, AppProxy.cfc을 확장 할 application.cfc을 설정합니다. 이렇게하면 루트 디렉토리 인 application.cfc 메소드가 상속됩니다.
<cfcomponent output="false" extends="AppProxy">
<cffunction name="onRequestStart" output="true">
<cfset super.onRequestStart() />
<!--- Some other stuff happens here. --->
</cffunction>
</cfcomponent>
AppProxy가 루트 디렉토리에 없더라도 작동합니다. 이 경우 "child"application.cfc가 점 표기법을 사용하여 AppProxy를 찾았는지 확인하십시오.
<cfcomponent output="false" extends="Path.To.Child.Directory.AppProxy">
<cffunction name="onRequestStart" output="true">
<cfset super.onRequestStart() />
<!--- Some other stuff happens here. --->
</cffunction>
</cfcomponent>
에릭, 팁 주셔서 감사! "Path.To.Child.Directory"는 개발 서버에서 "Projects.ClientName"이지만 프로덕션 서버에서는 루트에 있기 때문에 문제가 있습니다. –
트리의 맨 위에있는 Application.cfc를 subfolder.ApplicationProxy로 확장하여 서브 폴더에있는 Application.cfc를 확장 할 수 있는지 궁금합니다. 그게 효과가있을거야! –
CFgears 감사하지만 매핑 전에 확장 매개 변수가 적용됩니다. –
확장하기 전에 적용된 CF 관리에서 만든 매핑을 생각하십시오. – Sergii
이것은 공유 서버에 있으므로 CF 관리자로 들어갈 수 없습니다. –