JSS Next.jsアプリのトラブルシューティング
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
JSSアプリケーションのデバッグに役立つように、JSSが提供するデバッグ・ロギング・ユーティリティーを使用することをお勧めします。
ほとんどのエラーは、次の手順で防ぐことができます。
-
アプリで使用されるすべての環境変数に値があることを確認します。サンプル アプリでは、次の順序で環境変数が検索されます。
-
scjssconfig.json.
-
.env.
-
.env.local (ローカル環境のみ)。
-
-
複数のファイルに同じ変数の定義が含まれている場合、アプリケーションは最後に検出した値を使用します。
変数の名前と説明については、サンプル .envファイルを参照してください。
-
APIキーが正しく設定されていることを確認します。
-
プロジェクトのサイト定義とアプリ定義がSitecore設定で正しいことを確認します。必要なプロパティのリストについては、Sitecoreアプリの設定 を参照してください。
-
JSS編集シークレットが設定されていることを確認します。Next.jsアプリで使用されるJSS_EDITING_SECRET値は、Sitecoreインスタンスで使用される値と一致する必要があります。
-
GraphQLエンドポイントがpackage.jsonとSitecoreアプリの設定で正しいことを確認します。ブラウザでGraphQL IDEを開き、設定の値 (<sitecore hostname + graphQL endpoint>/ui?sc_apikey=<api key>) を使用して、エンドポイントが機能していることを確認します。
サーバーサイドのJavaScriptエラー
サーバーサイドのJavaScriptエラー
npm installまたはbuildのステップで予期しないJavaScriptエラー、特に他のチームメンバーが再現できないエラーが発生した場合は、使用されているNodeとnpmのバージョンを確認してください。ターミナルから、次のコマンドを実行します。
JSSはLong Term Support (LTS) versions of Nodeを使用してテストします。これらは通常、最新の公式Nodeバージョンより1つのメジャー バージョンです。
CI/本番環境で使用されるNode/npmのバージョンは、ローカル環境で使用されるバージョンとは異なる場合があります。プロジェクト構成で特定のNode/npmバージョンがpackage.jsonで必要ない場合、デプロイ エージェントは通常、使用可能な最新バージョンまたは環境固有のデフォルト バージョンを使用してビルドされます。
テストのためにローカル環境上の複数のノードバージョンを切り替える必要がある場合は、nやnvmなどのサードパーティパッケージを使用できます。
SSL証明書に関するエラー
SSL証明書に関するエラー
プライベート署名証明書を使用してローカルのSitecoreインスタンスを使用している場合、次のエラーが発生する可能性があります。
エラー: 最初の証明書を確認できません
エラー:LEAFTO署名を確認できません
UnauthorizedError: 無効な署名
このエラーを解決するには、Sitecore CA証明書をNode.jsに設定します。
JSSアプリケーションをローカルにデプロイする際のエラー
JSSアプリケーションをローカルにデプロイする際のエラー
インポートロールに適切なアクセス許可がない場合、次のエラーが発生する可能性があります。
解決策については、「 AzureでJSSアプリケーションをインポートする際のエラー 」を参照してください。
データ取得の問題
データ取得の問題
JSS Next.jsアプリの構築とレンダリングは、GraphQLを使用してデータを正常にフェッチできるかどうかにかかっています。ビルドの失敗や、ページをレンダリングできないアプリの最も一般的な原因は、データ取得プロセスの問題です。
GraphQL IDEを <sitecore hostname + graphQL endpoint>/ui?sc_apikey=<api key> 使用して、データ取得プロセスの問題を診断できます。
静的生成機能をサポートするために、Next.js JSSアプリはGraphQLクエリを使用してSitecoreパスを取得します。GraphQL IDEで次のクエリを実行してみてください。
期待どおりの結果が得られない場合は、次の手順を試してください。
-
Sitecore Control Panelで、Populate Solr Managed Schemaを使用してSolrスキーマを設定します。
-
Sitecore Control Panelでは、Indexing Managerを使用してインデックスを再構築します。
-
コンテンツアイテムに、クエリする言語のバージョンがあることを確認します。
エクスペリエンス エディターでのレンダリング ホストのタイムアウトの問題
エクスペリエンス エディターでのレンダリング ホストのタイムアウトの問題
HTTPレンダリングエンジンを使用するように設定されたJSSアプリ (Next.jsアプリなど) をエクスペリエンスエディターで初めて開くと、レンダリングホストから 「 The operation has timed out」というメッセージでタイムアウトエラーが発生することがあります。ログには、次の内容が表示される場合があります。
この問題を解決するには、\App_Config\Sitecore\JavaScriptServices\Sitecore.JavaScriptServices.ViewEngine.Http.configファイルを編集して、RequestTimeoutMs設定の値を増やします。例えば:
Sitecoreでアイテムを編集しようとするとエラーが発生する
Sitecoreでアイテムを編集しようとするとエラーが発生する
Sitecoreエディター ロールで新しいユーザーを作成した後、SitecoreでJSSアプリ アイテムを編集しようとすると、ユーザーに読み取りアクセス権がないという警告が表示される場合があります。
回避策は、System/Workflows/JSS development workflow項目のWorkflow State Writeを手動で設定し、最終的な発行済み状態を編集可能にすることです。これにより、ユーザーはLock and Editオプションを使用して編集用のアイテムの新しいバージョンを作成できます。
SitecoreインスタンスとSXAを使用してNext.jsアプリを起動しようとするとGraphQLクエリ エラーが発生する
SitecoreインスタンスとSXAを使用してNext.jsアプリを起動しようとするとGraphQLクエリ エラーが発生する
SXAとJSSテナントを統合しており、Next.jsアイテムをJSSテナントにデプロイする場合、Next.jsアプリを本番環境モードで起動しようとすると、GraphQLクエリ エラーが発生する可能性があります。
Error: Valid value for rootItemId not provided and failed to auto-resolve app root item.
このエラーは、JSSテナントにデプロイされたNext.jsアプリとNext.jsアプリのアイテムが異なるテンプレートを参照し、クエリが失敗するために発生します。
このエラーを回避するには、GraphQLサービスのインスタンスのrootItemIdを次のように定義します。
-
/src/lib/sitemap-fetcher/plugins/graphql-sitemap-service.ts.
-
/src/lib/dictionary-service-factory.ts.
GraphQLイントロスペクションデータを生成する際のエラー
GraphQLイントロスペクションデータを生成する際のエラー
GraphQLスキーマが変更された場合は、GraphQLイントロスペクション データを再生成する必要があります。
サンプル アプリでは、jss graphql:updateコマンドを使用してイントロスペクション データを再生成します。
このコマンドによって内部的に呼び出されるスクリプトは、scjssconfig.jsonファイルが取り込まれていることに依存します。ファイルを生成するには、JSSアプリをSitecoreに接続する必要があります。
VercelがローカルのSitecore環境からのデータを表示できない
VercelがローカルのSitecore環境からのデータを表示できない
ngrokを使用してローカルSitecoreエンドポイントをVercelに公開している場合は、host-headerフラグを使用していることを確認してください。例えば
Sitecoreイメージがlocalhostに読み込まれない
Sitecoreイメージがlocalhostに読み込まれない
アプリケーションにlocalhostドメインを使用しているときにSitecoreイメージが読み込まれない場合は、Next.jsプロキシ経由でイメージを要求しようとしているため、エラー 500 - Invalid URI: The hostname could not be parsedが発生している可能性があります。
Sitecoreイメージをlocalhostドメインにロードするには、コンテンツ リゾルバーのIncludeServerUrlInMediaUrls属性をtrueに設定して、イメージURLにSitecore URLを含める必要があります。例えば:
この設定を行うと、アプリケーションはSitecoreから直接イメージを要求します。
実稼働環境では、IncludeServerUrlInMediaUrls属性の値をfalseに変更する必要があります。