3

アプリケーションの設計では、VanityURL の概念をユーザーに紹介したいと考えています。VanityURL は、ページのカスタム メタになります。バニティ URL が PAGE テーブルのものではないため、URL でページを照会するブローカー API が機能しなくなりました。私たちが思いついた解決策は、CustomMetaKeyCriteria と CustomMetaValueCriteria を使用してページ ID をクエリすることで、うまくいきました。

このソリューションを評価し、いくつかのコメントを提供する専門家をここに迎えたいと思います。

ありがとう。

4

1 に答える 1

3

良い質問。すべてのページ リクエストに対してメタデータのクエリを実行する場合は注意が必要です。パブリケーション内のすべてのページ/URL で値が一意であることを確認する必要があるため、このデータをページ メタデータとして保存する場合も注意が必要です。

一意性の問題を回避するには、ページの保存時に何らかのインデックス ファイルに対して値をチェック/保存するイベント システムを作成することをお勧めします。

ファイルは次のようになります。

<?xml version="1.0" encoding="UTF-8"?>
<VanityURLS PublicationID="tcm:0-33-1">
    <Page ID="tcm:3-24-64">
        <Vanity>/someURL.html</Vanity>
        <Vanity>/someotherURL.html</Vanity>
    </Page>
    <Page ID="tcm:3-25-64">
        <Vanity>/someURL.html</Vanity>
        <Vanity>/someotherURL.html</Vanity>
    </Page>
<VanityURLS>

次に、そのインデックス ファイルを定期的に発行し、それを使用して要求された URL を検索し、それらをページ URI にマップします。次に、URI を介してページをロードできます。または、既存のコードを使用したい場合は、リンク API を使用して URI から URL を取得できます。次に、値を GetPageMetaByURL() メソッドに渡すことができます。

于 2012-10-16T22:46:53.947 に答える