この記事では主に vue2.0 リソース ファイル アセットと静的の違いを紹介し、参考にしてください。
リソース ファイルの処理
プロジェクト構造には、2 つのリソース ファイル パス、つまり src/assets と static/ があります。それでは、この 2 つの違いは何でしょうか?
Webpack されたリソース
この質問に答えるには、まず webpack が静的リソースをどのように処理するかを理解する必要があります。 *.vue コンポーネントでは、すべてのテンプレートと CSS が vue-html-loader と css-loader によって解析され、リソースの URL が検索されます。
たとえば、 と背景: url(./logo.png)、"./logo.png" はどちらも相対リソース パスであり、Webpack によって解決されます。モジュールの依存関係。
logo.pngはJavaScriptではないため、モジュールの依存関係とみなした場合、url-loaderとfile-loaderを使って処理する必要があります。 テンプレートにはこれらのローダーがすでに構成されているため、デプロイメントを気にせずに相対/モジュール パスを使用できます。これらのリソースはビルド時にインライン化/コピー/名前変更される可能性があるため、基本的にはソース コードの一部となります。このため、webpack によって処理される静的リソースを、他のソース ファイルと同様に /src パスの下に配置することをお勧めします。実際、それらをすべて /src/assets の下に置く必要さえありません。モジュール/コンポーネントの使用状況に基づいてファイル構造を整理できます。たとえば、各コンポーネントとその静的リソースを独自のディレクトリに配置できます。
リソース処理ルール
相対 URL (例: ./assets/logo.png) はモジュールの依存関係として解釈されます。これらは、Webpack 出力設定に基づいて自動的に生成された URL に置き換えられます。プレフィックスのない URL (例:assets/logo.png) は相対 URL として扱われ、./assets/logo.png に変換されます
プレフィックスが付いている URL は、require('some-module /image と同様) として扱われます。 .png')。Webpack のモジュール処理構成を利用したい場合は、このプレフィックスを使用します。たとえば、アセットのパス解決がある場合は、 を使用して、解像度が正しいことを確認する必要があります。ルート ディレクトリに相対的な URL (例: /assets/logo.png) は処理されません
JavaScript でリソース パスを取得する
Webpack が正しいリソース パスを返すようにするには、require('./relative) を使用する必要があります。 /path/to/file.jpg') は、file-loader によって解析され、処理された URL が返されます。例:
computed: { background () { return require('./bgs/' + this.id + '.jpg') } }
上記の例では、最終ビルドには ./bgs/ パス内のすべてのイメージが含まれることに注意してください。これは、Webpack が実行時にどのイメージが使用されるかを推測できないためです。それはすべてを含みます。
「実際の」静的リソース
比較として、static/ の下にあるファイルは Webpack によって処理されません。同じファイル名が使用され、最終パスに直接コピーされます。これらのファイルを参照するには、config.js に追加された build.assetsPublicPath および build.assetsSubDirectory に応じて、絶対パスを使用する必要があります。
たとえば、以下のデフォルト値は次のとおりです:
// config/index.js module.exports = { // ... build: { assetsPublicPath: '/', assetsSubDirectory: 'static' } }
static/ ディレクトリに配置されたすべてのファイルは、絶対 URL /static/[ファイル名] を使用して参照される必要があります。 assetSubDirectoryの値をassetsに変更すると、これらのURLは/assets/[ファイル名]になります
上記は私がまとめたもので、将来的には皆さんのお役に立てれば幸いです。
関連記事:
Ajaxを使用して更新せずにページコンテンツとアドレスバーURLを変更する
JavaScriptはAjaxに基づいており、更新せずにWebページ上のファイルコンテンツを動的に表示します
以上がvue2.0 リソースファイルのアセットと静的の違いの詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。