コマンド ライン cnpm run build を使用して vue.js プロジェクトをパッケージ化してデプロイしたときに、この問題が発生しました。マスター T T
に助けを求めてください。まず、バックグラウンド Tomcat はアプリケーション コンテキストを xxx として構成されているため、サーバーのルート パスは http://localhost:8080/xxx
になります。ここで画像を <img src="../../assets/ad.png">
パッケージ化してデプロイした後、画像を表示できなくなり、要素を表示すると < になります。 ;img src="/ static/img/ad.22bf537.png">
エラー レポートを読み込めません http://localhost:8080/static/...
パスを直接 <img src="./static/img/ad.22bf537.png"> に変更すると表示されます
それでは、パッケージ化する前にこの問題をどのように解決すべきでしょうか?
Vue-cli のスキャフォールディングは、デフォルトで実稼働環境プロジェクトに従って構築されます。これは、大まかに言うと、特定のプロジェクトの下にある小さなモジュールではなく、プロジェクトを直接構築することを意味します。したがって、通常の Web サイトでは、Web サイトのルート ディレクトリに static が配置されます。ビルド後に生成された dist ディレクトリを開くことができます。内部の構造は次のとおりです。
プロジェクトのルートディレクトリに静的ファイルを配置するなど、最終的なリソースの場所を変更しますその場合、問題を解決するには 2 つの方法しかありません:
assetsPublicPathを/public/に変更すると、出力index.htmlのリソースリンクが変更されました:
を使用する別の汎用的な方法もあります。これは単に文字列を一致させて置き換えることを意味します。詳細な手順については、こちらを参照してください。 お役に立てば幸いです。
または、画像のパスを require('picture path') として img の src として設定することもできます。