1. その他の開発タスク

公開ターゲットの作成

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

公開ターゲットは、データベースと、そのデータベースを指定する公開ターゲット定義アイテムで構成されます。Sitecoreは、Masterデータベースから1つ以上の公開ターゲット データベースに公開します。マスター データベースには、未承認のコンテンツ変更を含む、すべてのデータのすべてのバージョンが含まれています。

デフォルトのパブリッシング・ターゲットであるInternetは、Webという名前のデータベースを参照しますが、追加のパブリッシング・ターゲットを作成することもできます。

追加の公開ターゲットを作成する理由は次のとおりです。

  • 地理的な配布: 複数の場所にあるコンテンツ配信サーバー上の複数の公開ターゲットにすべてのコンテンツを公開できます。

  • ライブ サイトに公開する前に、プレビュー公開ターゲット に公開する必要があります。

公開ターゲットを作成するには:

  1. 新しいデータベースをデプロイするには、たとえば、お使いのバージョンのSitecoreのインストール パッケージのWebデータベースを使用します。

  2. CMサーバー上のConnectionStrings.configファイルに、次のようなエントリを追加します。

    <add name="preview" connectionString="Data Source=.;Initial Catalog=web_preview;User ID=;Password=" />
    メモ

    プレビューではなくコンテンツ配信にデータベースを使用するには、CDサーバに接続を追加します。

  3. 次のような構成パッチ ファイルを作成します (設定はSitecore.configファイルにあります)。

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
      <sitecore>
        <eventing defaultProvider="sitecore">
          <eventQueueProvider>
            <eventQueue name="web_preview" patch:after="eventQueue[@name='web']" type="Sitecore.Data.Eventing.$(database)EventQueue, Sitecore.Kernel">
              <param ref="dataApis/dataApi[@name='$(database)']" param1="$(name)" />
              <param hint="" ref="PropertyStoreProvider/store[@name='$(name)']" />
            </eventQueue>
          </eventQueueProvider>
        </eventing>
        <PropertyStoreProvider>
          <store name="web_preview" patch:after="store[@name='web']" prefix="web_secondary" getValueWithoutPrefix="true" singleInstance="true" type="Sitecore.Data.Properties.$(database)PropertyStore, Sitecore.Kernel">
            <param ref="dataApis/dataApi[@name='$(database)']" param1="$(name)" />
            <param resolve="true" type="Sitecore.Abstractions.BaseEventManager, Sitecore.Kernel" />
            <param resolve="true" type="Sitecore.Abstractions.BaseCacheManager, Sitecore.Kernel" />
          </store>
        </PropertyStoreProvider>
        <databases>
          <!-- web_secondary -->
          <database id="web_preview" patch:after="database[@id='web']" singleInstance="true" type="Sitecore.Data.DefaultDatabase, Sitecore.Kernel">
            <param desc="name">$(id)</param>
            <icon>Images/database_web.png</icon>
            <securityEnabled>true</securityEnabled>
            <dataProviders hint="list:AddDataProvider">
              <dataProvider type="Sitecore.Data.DataProviders.CompositeDataProvider, Sitecore.Kernel">
              <param desc="readOnlyDataProviders" hint="list">
                <protobufItems type="Sitecore.Data.DataProviders.ReadOnly.Protobuf.ProtobufDataProvider, Sitecore.Kernel">
                  <filePaths hint="list">
                    <filePath>$(dataFolder)/items/$(id)</filePath>
                    <modulesFilePath>/sitecore modules/items/$(id)</modulesFilePath>
                  </filePaths>
                </protobufItems>
              </param>
          <param desc="headProvider">
                  <dataProvider ref="dataProviders/main" param1="$(id)">
                    <disableGroup>publishing</disableGroup>
                    <prefetch hint="raw:AddPrefetch">
                      <sc.include file="/App_Config/Prefetch/Common.config" />
                      <sc.include file="/App_Config/Prefetch/Webdb.config" />
                    </prefetch>
                  </dataProvider>
                </param>
              </dataProvider>
            </dataProviders>
            <PropertyStore ref="PropertyStoreProvider/store[@name='$(id)']" />
            <remoteEvents.EventQueue>
              <obj ref="eventing/eventQueueProvider/eventQueue[@name='$(id)']" />
            </remoteEvents.EventQueue>
            <archives hint="raw:AddArchive">
              <archive name="archive" />
              <archive name="recyclebin" />
            </archives>
            <cacheSizes hint="setting">
              <data>100MB</data>
              <items>50MB</items>
              <paths>2500KB</paths>
              <itempaths>50MB</itempaths>
              <standardValues>2500KB</standardValues>
            </cacheSizes>
            <BlobStorage hint="raw:AddBlobStorage">
               <providers default="classic">
                  <provider name="classic" type="Sitecore.Data.Blobs.ClassicSqlBlobProvider, Sitecore.Kernel">
                     <param desc="databaseName">$(id)</param>
                  </provider>
               </providers>
            </BlobStorage>
          </database>
        </databases>
      </sitecore>
    </configuration>
  4. App_Data\items\ フォルダーで、Webフォルダーのコピーを作成します。

  5. フォルダのコピーとその中の .datファイルの名前を変更します。フォルダのデータベース名 ( web_previewなど) を使用し、ファイル名内でデータベース名を使用するため、items.web_preview.dat) のようになります。

  6. SXAがインストールされている場合は、いくつかの追加手順が必要です。 sitecore modules\items\フォルダがある場合:

    1. sitecore modules\items\フォルダーで、webフォルダーのコピーを作成します。

    2. フォルダのコピーとその中の .datファイルの名前を変更します。フォルダのデータベース名 ( web_previewなど) を使用し、ファイル名内でデータベース名を使用するため、items.web_preview.sxa.datのようになります。

  7. 新しいデータベースの検索インデックスが必要な場合は、App_Config\Sitecore\ContentSearch\Sitecore.ContentSearch.Solr.Index.Web.config内のsitecore_web_indexの検索インデックスをコピーし、クローラが新しいデータベースを使用するように変更します。また、新しいデータベースからデータを取得するために、インデックス更新戦略を変更する必要もあります。

  8. 新しいインデックス更新ストラテジを作成するには、既存のonPublishEndAysncまたはOnPublishEndAsyncSingleInstanceインデックス更新ストラテジをコピーし、新しい名前 ( onPublishToPreviewEndAsyncなど) を付け、ストラテジのデータベース・パラメータをパブリッシング・ターゲットの名前に変更します。

この記事を改善するための提案がある場合は、 お知らせください!