ShifterはWebhookを使用した外部サーバーへのデプロイをサポートしており、生成されたコンテンツをNetlifyやAmazon S3バケットなどの外部サービスにコピーできます。そのためには、Shifter上でカスタムドメイン名を適用する必要があります。
アーティファクト生成時のドメイン名置換処理
Shifter Staticのジェネレーターは、リソースのURLをオリジナルからShifter CDNのURLまたは相対パスに置き換えます。
- Shifter Staticに公開する場合: サイトにドメイン名を適用してください。Shifter StaticがURLをカスタムドメイン名に自動的に書き換えます。
- Webhookを使用してアーティファクトを外部サーバーにデプロイする場合: 手動で実行する必要があります。
カスタムドメイン名を適用せずにアーティファクトを外部サーバーにデプロイするとどうなるか
WordPressによって追加されたJavaScriptファイルなど、一部のURLはShifter CDNのURLとして設定されたままになります。Shifter CDNのURL(例:abc123on.getshifter.io
)は、WordPressによって追加されたJavaScriptなどのデプロイされたリソースに存在します。そのため、デプロイされたサイトは、デプロイされたサーバー上ではなく、Shifter CDN上のリソースを呼び出します。ShifterでBASIC認証を設定している場合は、BASIC認証が必要になる場合があります。
カスタムドメイン名を手動で適用する方法
- ShifterダッシュボードでShifterサイトのドメインページにアクセスします。
- ドメイン名を追加し、ドメインの所有権を検証するためのCNAMEレコードを取得します。
- CNAMEレコードをDNSサーバーに追加し、ドメインの検証を完了します。
- これらの手順の詳細については、Shifterのカスタムドメインを参照してください。
- Shifter Domain CLIでコマンドを実行して、ドメイン名をサイトにアタッチします。
- アーティファクトを生成し、カスタムドメイン名が適用されていることを確認します。
Shifter CLIを使用したドメイン名のアタッチ
Shifterダッシュボードには、Webhookで公開されたアーティファクトにドメイン名を適用するためのインターフェースは現在ありません。しかし、開発中です。そのため、Shifter CLIで実行する必要があります。
コマンド例
$ shifter domain:add --username USERNAME --password PASSWORD --site-id xxx-YOUR-SITE-ID-xxxx --domain REPLACE-WITH-YOUR-DOMAIN-NAME --no-shifter-cdn
具体的な例
$ shifter domain:add --username shifter --password abc123 --site-id 7bf1bed4-a8fe-11e7-ae62-f2f909c1ded2 --domain shifter.example.com --no-shifter-cdn
注意: --no-shifter-cdn
を指定せずにコマンドを実行するか、false(--no-shifter-cdn false
)に設定すると、カスタムドメイン名がShifter CDN上のCloudFrontにアタッチされます。そのため、その後でCloudFrontにドメイン名を割り当てようとすると、エラーメッセージが表示されます。Shifterダッシュボードでデタッチしてから、--no-shifter-cdn
を指定してコマンドを再実行してください。
Shifter CLIの詳細
Shifter CLIの詳細については、Shifter CLIのサポートドキュメントおよび@shifter/cli – npm (npmjs.com)のページを参照してください。