ホームページ ウェブフロントエンド jsチュートリアル Webpack 構成パッケージングイメージパスのエラーに対処する方法

Webpack 構成パッケージングイメージパスのエラーに対処する方法

Jun 02, 2018 am 10:02 AM
web webpack パック

今回は、webpack 構成のパッケージ化画像パスのエラーに対処する方法を説明します。webpack 構成のパッケージング画像パスのエラーに対処する場合の注意事項は何ですか?実際のケースを見てみましょう。

問題

プロジェクトは開発環境で正常に動作しますが、要素を確認したところ、パスが間違っていることがわかりました。

画像のパスは次のようになります:

background: url(/static/img/bg_camera_tip.bd37151.png) ですが、このパスにはファイルが存在しません。

パッケージ化されたファイルのディレクトリは次のとおりです:

背景画像のパスは ../../static である必要があることがわかりますが、理由がわかると、実際には /static になります。解決しました

方法1

ビルドディレクトリ内のwebpack.base.conf.jsの構成を確認してください。画像ファイルはurl-loaderによって処理されます。

 module: {
  rules: [
   ...
   {
    test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
    loader: 'url-loader',
    options: {
     limit: 10000,
     name: utils.assetsPath('img/[name].[hash:7].[ext]')
    }
   },
   ...
  ]
 }
ログイン後にコピー
その機能は、ファイル サイズが制限値未満の場合に、base64 文字列を返すことです。実際、画像リソースを Base64 文字列にエンコードして CSS ファイルに配置します。これにより、それぞれのネットワーク リクエストが 1 つ削減されます。画像はサーバーからダウンロードする必要があります。ただし、ファイルが大きすぎると、base64 文字列が CSS ファイルに配置されると非常に長くなり、CSS ファイルのダウンロード時間が長くなり、損失よりも利点が大きくなります。したがって、この範囲内のものだけがbase64文字列に変換され、その単位はバイトになります。この問題に対して、ローダーは参照されたイメージ アドレスを変更するために使用される publicPath パラメーターも提供します。デフォルトは現在のパスなので、それを直接変更するだけです。つまり、パラメーター publicPath: '../.. under を追加します。 /' オプション ノード。

 module: {
  rules: [
   ...
   {
    test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
    loader: 'url-loader',
    options: {
     limit: 10000,
     publicPath: '../../', //你实际项目的引用地址前缀
     name: utils.assetsPath('img/[name].[hash:7].[ext]')
    }
   },
   ...
  ]
 }
ログイン後にコピー
方法 2

webpack.base.conf.js にもルールがあります。各 vue ファイルは vueLoaderConfig によって処理されます

 module: {
  rules: [
   {
    test: /\.vue$/,
    loader: 'vue-loader',
    options: vueLoaderConfig
   },
   ...
  ]
 }
ログイン後にコピー
vueLoaderConfig は build/vue-loader.conf.js にあり、これを呼び出します。 /utils.js cssLoaders メソッドをビルドします。

  if (options.extract) {
   return ExtractTextPlugin.extract({
    use: loaders,
    fallback: 'vue-style-loader'
   })
  }
ログイン後にコピー
本番環境で options.extract 値が true の場合、ExtractTextPlugin プラグインが処理のために呼び出されます。その機能は、プロジェクト内で参照されているスタイル ファイルを独立した CSS ファイルに抽出し、すべての CSS が実行できるようにすることです。ファイルは CSS ファイルの並列ロードと同等であり、ネットワーク リクエストの数を減らすことができます。その他の利点と使用方法については、「ExtractTextWebpackPlugin」を参照してください。この質問に戻ると、指定されたローダーの publicPath 構成をオーバーライドできる別のパラメーター publicPath もあり、前の構成と同様に、参照ファイルのパス アドレスをすべてのローダーに対して均一に構成できます。

さらに、ここでの user:loader は実際には一連のローダー コレクションを返し、cssLoaders の戻り値は

 return {
  css: generateLoaders(),
  postcss: generateLoaders(),
  less: generateLoaders('less'),
  sass: generateLoaders('sass', { indentedSyntax: true }),
  scss: generateLoaders('sass'),
  stylus: generateLoaders('stylus'),
  styl: generateLoaders('stylus')
 }
ログイン後にコピー
です。これは、webpack.base.conf で sass-loader を設定しなくても SASS 構文を使用できることを意味します。 jsの理由。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

Node.js+コンソール出力ログファイルの分析例

Vueを使用してドラッグアンドドロップ効果を実現する方法

以上がWebpack 構成パッケージングイメージパスのエラーに対処する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PyCharm プロジェクトをパッケージ化する簡単な方法を共有する PyCharm プロジェクトをパッケージ化する簡単な方法を共有する Dec 30, 2023 am 09:34 AM

シンプルでわかりやすい PyCharm プロジェクトのパッケージ化方法を共有する Python の人気に伴い、Python 開発のメイン ツールとして PyCharm を使用する開発者が増えています。 PyCharm は、開発効率の向上に役立つ多くの便利な機能を提供する強力な統合開発環境です。重要な機能の 1 つはプロジェクトのパッケージ化です。この記事では、PyCharmでプロジェクトをパッケージ化する方法をシンプルかつ分かりやすく紹介し、具体的なコード例を示します。プロジェクトをパッケージ化する理由Pythonで開発

VSCodeの機能を詳しく解説:業務効率化にどう役立つのか? VSCodeの機能を詳しく解説:業務効率化にどう役立つのか? Mar 25, 2024 pm 05:27 PM

VSCodeの機能を詳しく解説:業務効率化にどう役立つのか?ソフトウェア開発業界の継続的な発展に伴い、開発者の作業効率とコードの品質の追求は、仕事における重要な目標となっています。このプロセスでは、コード エディターの選択が重要な決定になります。数あるエディターの中でも、Visual Studio Code (略して VSCode) は、その強力な機能と柔軟な拡張性により、大多数の開発者に愛されています。この記事では、VSCode のいくつかの機能を詳しく紹介し、説明します。

コックピット Web UI から管理アクセスを有効にする方法 コックピット Web UI から管理アクセスを有効にする方法 Mar 20, 2024 pm 06:56 PM

Cockpit は、Linux サーバー用の Web ベースのグラフィカル インターフェイスです。これは主に、初心者/熟練ユーザーにとって Linux サーバーの管理を容易にすることを目的としています。この記事では、Cockpit アクセス モードと、CockpitWebUI から Cockpit への管理アクセスを切り替える方法について説明します。コンテンツ トピック: コックピット エントリ モード 現在のコックピット アクセス モードの確認 CockpitWebUI からコックピットへの管理アクセスを有効にする CockpitWebUI からコックピットへの管理アクセスを無効にする まとめ コックピット エントリ モード コックピットには 2 つのアクセス モードがあります。 制限付きアクセス: これは、コックピット アクセス モードのデフォルトです。このアクセス モードでは、コックピットから Web ユーザーにアクセスできません。

Python アプリケーションの究極の進化: PyInstaller は繭から現れ、蝶になります Python アプリケーションの究極の進化: PyInstaller は繭から現れ、蝶になります Feb 19, 2024 pm 03:27 PM

PyInstaller は、元のスクリプト形式を超えて Python アプリケーションを強化する革新的なツールです。 Python コードをスタンドアロンの実行可能ファイルにコンパイルすることにより、PyInstaller はコードの配布、展開、およびメンテナンスの新しい領域を解放します。単一のスクリプトから強力なアプリケーションへ これまで、Python スクリプトは特定の Python 環境にのみ存在していました。このようなスクリプトを配布するには、ユーザーが Python と必要なライブラリをインストールする必要がありますが、これは時間がかかり面倒なプロセスです。 PyInstaller では、Python コードと必要なすべての依存関係を単一の実行可能ファイルに結合する、パッケージ化の概念が導入されています。 PyInstaller の作業をパッケージ化するコードの芸術

Python アプリケーションの独立宣言: PyInstaller の自由への道 Python アプリケーションの独立宣言: PyInstaller の自由への道 Feb 20, 2024 am 09:27 AM

PyInstaller: Python アプリケーションの独立性 PyInstaller は、Python アプリケーションとその依存関係を独立した実行可能ファイルにパッケージ化するオープンソースの Python パッケージ化ツールです。このプロセスにより、Python インタープリターへの依存が排除され、Windows、MacOS、Linux などのさまざまなプラットフォームでアプリケーションを実行できるようになります。パッケージ化プロセス PyInstaller のパッケージ化プロセスは比較的単純で、次の手順が含まれます。 pipinstallpyinstallerpyinstaller--onefile--windowedmain.py--onefile オプションは、単一のファイルを作成します。

PyCharm チュートリアル: Python コードを EXE ファイルにパッケージ化する方法 PyCharm チュートリアル: Python コードを EXE ファイルにパッケージ化する方法 Feb 21, 2024 pm 12:12 PM

この記事では、PyInstaller を使用して Python コードを実行可能 EXE ファイルにパッケージ化する PyCharm の一般的な方法を紹介します。 PyInstaller は、Python アプリケーションを独立した実行可能ファイルに変換するツールです。Python コードを EXE、APP、Linux およびその他の形式にパッケージ化できるため、ユーザーは Python インタプリタがインストールされていない環境でも Python プログラムを実行できます。ステップ 1: PyIn をインストールする

PHP は Web 開発におけるフロントエンドですか、それともバックエンドですか? PHP は Web 開発におけるフロントエンドですか、それともバックエンドですか? Mar 24, 2024 pm 02:18 PM

PHP は Web 開発のバックエンドに属します。 PHP はサーバー側のスクリプト言語であり、主にサーバー側のロジックを処理し、動的な Web コンテンツを生成するために使用されます。フロントエンド テクノロジーと比較して、PHP はデータベースとの対話、ユーザー リクエストの処理、ページ コンテンツの生成などのバックエンド操作に多く使用されます。次に、特定のコード例を使用して、バックエンド開発における PHP のアプリケーションを説明します。まず、データベースに接続してデータをクエリするための簡単な PHP コード例を見てみましょう。

Linux におけるパッケージ化と圧縮の違いを正しく理解する方法 Linux におけるパッケージ化と圧縮の違いを正しく理解する方法 Feb 20, 2024 pm 05:33 PM

パッケージ化と圧縮は Linux で一般的に使用される操作ですが、多くのユーザーは 2 つの概念を混同する傾向があります。この記事では、Linux システムにおけるパッケージ化と圧縮の違いについて詳しく説明し、読者の理解を助けるために特定のコード例を使用します。まず、梱包と圧縮の違いを明確にする必要があります。パッケージ化とは、複数のファイルまたはディレクトリを 1 つのファイルに組み合わせることであり、ファイルの整理、アーカイブ、または転送によく使用されます。圧縮とは、アルゴリズムを通じて 1 つ以上のファイルを圧縮して、ファイルのサイズを削減し、記憶領域を節約し、または転送を高速化することです。

See all articles