tencent cloud

Cloud Object Storage

最新情報とお知らせ
製品アップデート情報
製品のお知らせ
製品概要
製品概要
機能概要
応用シナリオ
製品の優位性
基本概念
リージョンとアクセスドメイン名
仕様と制限
製品の課金
課金概要
課金方式
課金項目
無料利用枠
記帳例
請求書の確認とダウンロード
お支払い遅れについて
よくある質問
クイックスタート
コンソールクイックスタート
COSBrowserクイックスタート
ユーザーガイド
リクエストの作成
バケット
オブジェクト
データ管理
バッチ処理
グローバルアクセラレーション
監視とアラーム
運用管理センター
データ処理
インテリジェントツールボックス使用ガイド
データワークフロー
アプリ統合
ツールガイド
ツール概要
環境のインストールと設定
COSBrowserツール
COSCLIツール
COSCMDツール
COS Migrationツール
FTP Serverツール
Hadoopツール
COSDistCpツール
HDFS TO COSツール
オンラインツール (Onrain Tsūru)
セルフ診断ツール
実践チュートリアル
概要
アクセス制御と権限管理
パフォーマンスの最適化
AWS S3 SDKを使用したCOSアクセス
データディザスタリカバリバックアップ
ドメイン名管理の実践
画像処理の実践
COSオーディオビデオプレーヤーの実践
データセキュリティ
データ検証
COSコスト最適化ソリューション
サードパーティアプリケーションでのCOSの使用
移行ガイド
サードパーティクラウドストレージのデータをCOSへ移行
データレークストレージ
クラウドネイティブデータレイク
メタデータアクセラレーション
データアクセラレーター GooseFS
データ処理
データ処理概要
画像処理
メディア処理
コンテンツ審査
ファイル処理
ドキュメントプレビュー
トラブルシューティング
RequestId取得の操作ガイド
パブリックネットワーク経由でのCOSへのファイルアップロード速度の遅さ
COSへのアクセス時に403エラーコードが返される
リソースアクセス異常
POST Objectの一般的な異常
セキュリティとコンプライアンス
データ災害復帰
データセキュリティ
クラウドアクセスマネジメント
よくある質問
よくあるご質問
一般的な問題
従量課金に関するご質問
ドメインコンプライアンスに関するご質問
バケット設定に関する質問
ドメイン名とCDNに関するご質問
ファイル操作に関するご質問
権限管理に関するご質問
データ処理に関するご質問
データセキュリティに関するご質問
署名付きURLに関するご質問
SDKクラスに関するご質問
ツール類に関するご質問
APIクラスに関するご質問
Agreements
Service Level Agreement
プライバシーポリシー
データ処理とセキュリティ契約
連絡先
用語集
ドキュメントCloud Object Storage実践チュートリアルドメイン名管理の実践COS静的ウェブサイト機能を使用したフロントエンドSPAの構築

COS静的ウェブサイト機能を使用したフロントエンドSPAの構築

PDF
フォーカスモード
フォントサイズ
最終更新日: 2025-11-04 15:37:02

single-page applicationとは何ですか。

single-page application(SPA)とは、ネットワークアプリケーションプログラムまたはウェブサイトのモデルの一種であり、従来のように新しいページ全体をサーバーからリロードするのではなく、現在のページを動的にリライトすることでユーザーとのインタラクションを行うものです。この方式では、ページ間の切り替えによってユーザーエクスペリエンスが中断されることがなく、アプリケーションをデスクトップアプリケーションにより近いものにすることができます。single-page applicationでは、必要なコード(HTML、JavaScript、CSS)はすべて単一のページからロードして検索するか、または必要に応じて(通常はユーザーの操作に対する応答として)適切なリソースを動的にロードし、ページに追加します。
現在のフロントエンド開発領域でよくみられるSPA開発フレームワークには、React、Vue、Angularなどがあります。
ここでは、現在比較的よく用いられている2つのフレームワークを使用し、Tencent CloudのCloud Object Storage(COS)静的ウェブサイト機能を使用してオンラインで使用できるSPAをスピーディーに構築する方法について、段階を追ってご説明するとともに、よくあるご質問とその対処方法についても記載します。

準備作業

1. Node.js 環境をインストールします。
2. Tencent Cloudアカウントを登録し、実名認証を完了して、Tencent Cloud COSコンソールに正常にログインできることを確認します。
3. バケットを作成します(テストに便利なように、権限をパブリック読み取り/プライベート書き込みに設定します)。

フロントエンドコードを作成する

注意:
すでにご自身でコードを実装済みの場合は、バケットの静的ウェブサイト設定を有効化するの手順に直接ジャンプして確認することができます。

Vueを使用してSPAをスピーディーに構築する

1. 次のコマンドを実行し、vue-cliをインストールします。
npm install -g @vue/cli
2. 次のコマンドを実行し、vue-cliを使用してvueプロジェクトをクイック生成します。公式ドキュメントをご参照ください。
vue create vue-spa
3. 次のコマンドを実行し、プロジェクトのルートディレクトリにvue-routerをインストールします。
npm install vue-router -S (Vue2.x)
または
npm install vue-router@4 -S (Vue3.x)
4. プロジェクト内のmain.jsおよびApp.vueファイルを変更します。 main.jsは以下のようにします。

App.vueは主にコンポーネントのtemplateを以下のように変更します。


説明:
スペースの都合上、ここでは一部の重要コードのみを抜粋します。完全なコードはここをクリックしてダウンロードできます。
5. コードを変更した後、次のコマンドを実行してローカルプレビューを行います。
npm run serve
6. デバッグを行い、プレビューで誤りがないか確認した後、次のコマンドを実行して本番環境コードをパッケージ化します。
npm run build
この時点で、プロジェクトのルートディレクトリ下にdistディレクトリが生成されます。これでVueのプログラムコードの準備は完了です。

Reactを使用してSPAをスピーディーに構築する

1. 次のコマンドを実行し、create-react-appをインストールします。
npm install -g create-react-app
2. create-react-appを使用してreactプロジェクトをクイック生成します。公式ドキュメントをご参照ください。
3. 次のコマンドを実行し、プロジェクトのルートディレクトリにreact-router-domをインストールします。
npm install react-router-dom -S
4. プロジェクト内のApp.jsファイルを変更します。


説明:
スペースの都合上、ここでは一部の重要コードのみを抜粋します。完全なコードはここをクリックしてダウンロードできます。
5. コードを変更した後、次のコマンドを実行してローカルプレビューを行います。
npm run start
6. デバッグを行い、プレビューで誤りがないか確認した後、次のコマンドを実行して本番環境コードをパッケージ化します。
npm run build
この時点で、プロジェクトのルートディレクトリ下にbuildディレクトリが生成されます。これでReactのプログラムコードの準備は完了です。

バケットの静的ウェブサイト設定を有効化する

1. 作成済みのバケットの詳細ページに進み、左側ナビゲーションバーで、基本設定 > 静的ウェブサイトをクリックします。
2. 静的ウェブサイト管理ページで、下図を参照して設定を行います。操作の詳細については、静的ウェブサイトの設定をご参照ください。

COSにデプロイする

1. 静的ウェブサイトを設定済みのバケットを見つけ、ファイルリストページに進みます。
2. コンパイルディレクトリ(Vueはデフォルトではdistディレクトリ、reactはデフォルトではbuildディレクトリ)下のすべてのファイルをバケットのルートディレクトリ下にアップロードします。操作の詳細については、オブジェクトのアップロードをご参照ください。
3. バケットの静的ウェブサイトドメイン名にアクセスします(下図のアクセスノード参照)。
これで、デプロイが完了したアプリケーションのメインページを確認できます。ここではVueアプリケーションの例を挙げます。

4. ルーティング(Home、Foo、Bar)を切り替えてページを更新してみて、予測したとおり(ルーティング下で更新しても404エラーが表示されない)になるかどうかを検証します。

よくあるご質問

静的ウェブサイトのデフォルトドメイン名を使用したくない場合はどうすればよいですか。自分のドメイン名を使用できますか。

上記で使用したデフォルトの静的ウェブサイトドメイン名以外に、COSはカスタムCDNアクセラレーションドメイン名、カスタムオリジンサーバードメイン名の設定もサポートしています。具体的には、ドメイン名管理の概要のドキュメントを参照して設定できます。設定が成功すると、ご自身の使用したいドメイン名でアプリケーションにアクセスできるようになります。
CDNアクセラレーションドメイン名の設定を選択した場合は、更新後のデータを入手しやすいよう、CDNノードキャッシュ期限設定を行っておくことにご注意ください。

アプリケーションをデプロイ後、ルーティングを切り替えてレンダリングに成功しましたが、ページを更新すると404エラーが表示されました。何が原因ですか。

原因は、静的ウェブサイト設定の際に設定が失われたか、またはエラードキュメントを誤って設定したことによる可能性があります。この章の冒頭にある標準設定のスクリーンキャプチャをもう一度ご参照ください。エラードキュメントとインデックスドキュメントはどちらもindex.htmlに設定されています。
SPAの特性により、どのような状況でもアプリケーションポータル(通常はindex.html)にアクセスできることを保証する必要があります。そうしなければ、その後のルーティングの一連の内部ロジックがトリガーされないからです。

ルーティングの切り替え後、ページは正常に表示されますが、HTTPステータスコードが404のままです。どうすれば正常に200が返されますか。

ここでの原因は、静的ウェブサイト設定の際にエラードキュメントのレスポンスコードを設定していなかったことによるものです。冒頭の設定スクリーンキャプチャをご参照の上、200に設定することで解決できます。

エラードキュメントを設定後、アクセスエラーのパスに404を表示する機能も必要なのですが、どうすればよいですか。

ここでは、フロントエンドコード内で404ロジックを実装することを推奨します。ルーティング設定の一番下に最下層のマッチングルールを設定し、前のすべてのルールがマッチングに失敗した場合は404コンポーネントをレンダリングするようにします。コンポーネントの内容はニーズに合わせてご自身で設計可能です。具体的には、ここでご提供するコードdemo内のルーティング設定の最後の設定をご参照ください。

アクセスしたページで403 Access Deniedエラーが表示されましたが、何が原因ですか。

原因は、バケットの権限がプライベート読み取り/書き込みに設定されていることによる可能性があります。パブリック読み取り/プライベート書き込みに変更すると解決できます。
また、CDNアクセラレーションドメイン名を使用してプライベート読み取り/書き込みのバケットにアクセスする場合、back-to-origin認証を有効化しておかなければ、CDNサービスにCOSリソースへの正常なアクセス権限を付与できないことにも注意が必要です。

ヘルプとサポート

この記事はお役に立ちましたか?

フィードバック