1

私は次のディレクトリ構造を持っています:

| 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が見つかりませんでした。

言い換えれば、それは間違ったディレクトリでそれを探し続けます。

なぜ?

4

1 に答える 1

1

ファイルを/CFC_DIRに変更しているが、まだ/ WEBSITE_CFCを使用している場合は、キャッシュをクリアする必要があるようです。

CF管理者のキャッシュをクリアする

キャッシュのクリアは、ColdFusionAdministratorで手動で行うことができます。ログイン後、「サーバー設定」の3番目の項目は「キャッシュ」です。ページの一番下までスクロールして、キャッシュをクリアするボタンを探します。

開発の目的で、このページのさまざまなキャッシュオプションを完全に無効にすることを検討することをお勧めします。これらは、ライブサーバーのパフォーマンス向上に役立ちますが、通常、開発マシンでは不要な障害になります。

プログラムでキャッシュをクリアする

自動展開を使用している場合は、リモートサーバーのCF管理者にログインしてボタンを押す必要はありません。幸い、プログラムでキャッシュをクリアすることもできます。

<cfscript>
    createObject("Component", "cfide.adminapi.administrator")
        .login("**replace with admin password**");

    RuntimeService = createObject("component", "cfide.adminapi.runtime");

    // Clear whole cache:
    RuntimeService.clearTrustedCache();

    // Clear cache for individual files:
    RuntimeService.clearTrustedCache("/path/to/file1.cfm,/path/to/file2.cfm");

    // Clear component cache:
    RuntimeService.clearComponentCache();
</cfscript>

( Charlieのブログエントリから採用されたコード。)

Admin RuntimeコンポーネントのAPIは、http://www.cfexecute.com/admin-api-documentation/runtime-cfc/にあります。

于 2013-01-25T18:34:20.607 に答える