私は次のディレクトリ構造を持っています:
| SITES_FOLDER
|___ WEBSITE1
|___ WEBSITE_CFC
|___ CFC_DIR
WEBSITE1には、Application.cfcといくつかのページが含まれています。次に、次のコードを使用してセッション開始時にインスタンス化されるWEBSITE_CFCディレクトリ内にコンポーネントShoppingCart.cfcがあります。
createObject("component","WEBSITE_CFC.ShoppingCart").Init() />
これは機能します。
次に、ShoppingCart.cfcをCFC_DIRディレクトリに移動し、インスタンス化コードを次のように変更します。
createObject("component","CFC_DIR.ShoppingCart").Init() />
明らかに、ColdFusionはルートディレクトリ「WEBSITE1」の下の「CFC_DIR」ディレクトリを検索し、それを見つけられないため、これは機能しません。
この問題はマッピングを使用することで解決できると思ったので、CFIDE管理者に相談します。サーバー設定>マッピング。
Logical path: "CFC_DIR"
Directory path: "C:\some\folders\SITES_FOLDER\CFC_DIR"
運がない。そこで、Application.cfcで試してみました。
<cfset THIS.mappings["/CFC_DIR"] = "C:\some\folders\SITES_FOLDER\CFC_DIR" />
これもうまくいきませんでした!
編集:
多分私は理解しています:cfmテンプレートからCFCを作成しようとすると、それは機能します。
OnSessionStart Application.cfcのメソッド内で作成しようとすると、エラーが発生します。
名前が正しいこと、およびコンポーネントまたはインターフェースが存在することを確認してください。メッセージColdFusionコンポーネントまたはインターフェイスC:\ some \ folder \ SITES_FOLDER \ WEBSITE1 | WEBSITE_CFC\ShoppingCart.cfcが見つかりませんでした。
言い換えれば、それは間違ったディレクトリでそれを探し続けます。
なぜ?