Vue プロジェクトをパッケージ化して Apache サーバーにデプロイする手順

Vue プロジェクトをパッケージ化して Apache サーバーにデプロイする手順

開発環境では、vue プロジェクトは、ローカルで Express サーバーを構築することをベースにした npm run dev コマンドを通じて実行されます。

しかし、サーバーではそうではありません。プロジェクト全体を npm run build コマンドを使用してパッケージ化する必要があります。パッケージ化後、プロジェクト ディレクトリに次の内容の dist フォルダーが生成されます。

次に、これらのファイルをサーバー上のフォルダにドロップします。私のフォルダ名はibmsです。

発生した問題:

1. http://www.xxx.com/ibms/ に直接アクセスすると、Web ページが何も表示されていない白い画面になっていることがわかります。これは非常に奇妙です。実際には、リソースの読み込みパスに問題があるためです。

解決:

config の index.js の build で webpack 構成を変更します。

アセットパブリックパス: '/ibms/'

ルーターの index.js 構成に以下を追加します。

デフォルトの新しいルーターをエクスポートします({
 モード: '履歴'、
 スクロール動作: () => ({ y: 0 }),
 base: '/ibms/', // この行を追加 route: constantRouterMap
})

次に、npm run build で再パッケージ化し、サーバーの ibms フォルダーにドロップします。その後、ページに正常にアクセスできるようになります。

2. 現在のページを更新するか、URL バーを使用してサブページにアクセスすると、Web ページが 404 であることがわかります。これは、Vue ルーティングのモードが履歴モードであるためです。

解決:

すべてのリクエストを http://www.xxx.com/ibms/index.html に転送してください。

ここでは、Web サーバーとして Apache を使用しています。ibms ディレクトリ (index.html と同じレベル) に新しい .htaccess ファイルを作成し、コードを編集します。

<IfModule mod_rewrite.c>
  RewriteEngine オン
  書き換えベース /ibms/
  書き換えルール ^index\.html$ - [L]
  書き換え条件 %{REQUEST_FILENAME} !-f
  書き換え条件 %{REQUEST_FILENAME} !-d
  書き換えルール . /ibms/index.html [L]
</モジュール>

この構成の目的は、サーバー上に存在しないすべてのリクエストを index.html に転送することです。 (追記: Apache サーバーを再起動することを忘れないでください)

Vue プロジェクトをパッケージ化して Apache サーバーにデプロイする手順に関するこの記事はこれで終わりです。Vue プロジェクトのパッケージ化と Apache へのデプロイに関するより詳しい情報については、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • パッケージ化後にvue-cli3プロジェクトをサーバーに自動的にデプロイする方法
  • Vue3 プロジェクトをパッケージ化してサーバーにデプロイした後、バックエンド インターフェイスを要求できない問題の解決策
  • Vue プロジェクトを IIS サーバーにパッケージ化してデプロイする構成方法
  • Vue プロジェクトをパッケージ化してサーバーにデプロイする方法の例
  • Vue パッケージファイルを Express サーバーにデプロイする方法
  • Vue プロジェクト Webpack をパッケージ化してサーバーにデプロイする方法の詳細な例

<<:  mysql 複数テーブル接続削除関数の削除

>>:  Linuxでプロセスが占有するポート番号を表示する

推薦する

チェックボックスの不確定プロパティの使用の紹介

Windows XP でフォルダーのプロパティ ダイアログ ボックスを使用すると、フォルダーの属性カ...

HTMLとリソースがどのように読み込まれるかを理解します

このブログのすべてのコンテンツは、クリエイティブ コモンズ ライセンスの下でライセンスされています。...

ボタンに醜い灰色の枠線が付いています。これを削除するにはどうすればよいですか?

ダイアログをクロージャで使用し、右上隅の向こう側に閉じるボタンがあるダイアログを描画しました。ボタン...

Dockerがコンテナを起動するたびに、IPとホストが指定した操作が実行されます。

序文Dockerを使ってHadoopクラスタを起動するたびに、ネットワークカードの再バインド、IPの...

Dockerを使用してMySQLデータベースをインストールするDeepinの詳細な説明

まずMySQLソースをクエリするdocker 検索 mysql公式ウェブサイトにアクセスしてイメージ...

MySQLテーブル構造を変更するコマンドを表示する

簡単な説明エディターはデータベースのエンコードが間違っているために問題に遭遇することが多く、これは頭...

MySQL 一時テーブルの簡単な使用法

MySQL 一時テーブルは、一時的なデータを保存する必要がある場合に非常に便利です。一時テーブルは現...

MySQLグループクエリ最適化方法

MySQL はほとんどの場合、GROUP BY クエリと DISTINCT クエリを同様に処理します...

JavaScript+html はフロントエンドページでランダム QR コード検証を実装します

クールなフロントエンドページのランダムQRコード検証を参考までに共有します。具体的な内容は次のとおり...

Windows で MySQL マスター スレーブ レプリケーションを構成する方法

MySQL マスター/スレーブ レプリケーションを使用すると、1 つのデータベース (マスター デー...

Vue 仮想 Dom から実際の Dom への変換

別のツリー構造があるJavascriptオブジェクトでは、このツリーが本物であると伝えるだけでよいD...

CSSはクーポンスタイルを実装するために放射状グラデーションを使用します

この記事では、CSS で放射状グラデーションを使用して、次の図に示すクーポン スタイルの効果を実現す...

Vue の一般的な問題と解決策の概要 (推奨)

Vue に限定されず、他の種類の SPA プロジェクトにも当てはまる問題がいくつかあります。 1....

初心者がソースコードからMySQLのデッドロック問題を理解する

夜遅くまで何度も困難なシングルステップデバッグを行った後、ようやく理想的なブレークポイントを見つけま...

Nginx の break と last の違いの詳細な分析

まずは違いについて話しましょう最後に、書き換えられたルールは、次の場所と一致させるために書き換えられ...