ホームページ > 記事 > ウェブフロントエンド > vue:src がファイル パス エラーを処理する方法
今回は、間違ったパスを持つ vue :src でファイルを処理する方法 を紹介します。 間違ったファイルパスを持つ vue :src を扱うときの 注意点は何ですか? ここで実際のケースを見てみましょう。 アセット: プロジェクトのコンパイル プロセス中に、webpack によって処理され、モジュールの依存関係に解析されます。< img src="./logo.png"> などの相対パス形式のみがサポートされます。 code> および <a href="http://www.php.cn/wiki/892.html" target="_blank">background</a></p>:url(./logo.png)、” ./logo.png" は相対リソース パスであり、モジュールの依存関係として webpack によって解析されます。静的: このディレクトリ内のファイルは webpack によって処理されません。簡単に言えば、サードパーティのファイルが保存される場所は処理されません。 Webpack によって解析されます。これは、最終的なパッケージング ディレクトリ (デフォルトは dist/static) に直接コピーされます。これらのファイルは絶対パスを使用して参照する必要があります。絶対パスは、config.js ファイル内の <code>build.assetsPublic
リンクと build.assertsSubDirectory
リンクによって決定されます。 static/ に配置されたファイルは、絶対パスの形式で参照する必要があります: /static[filename]
webpack の特性によると、一般に、静的ファイルは変更されず、3 番目のファイルは変更される可能性があります。 . ファイル img src=”./logo.png”>
和<a href="http://www.php.cn/wiki/892.html" target="_blank">background</a>:url(./logo.png)
,”./logo.png”是相对资源路径,将有webpack解析为模块依赖
static:在这个目录下文件不会被webpack处理,简单就是说存放第三方文件的地方,不会被webpack解析。他会直接被复制到最终的打包目录(默认是dist/static)下。必须使用绝对路径引用这些文件,这是通过config.js文件中的build.assetsPublic
和build.assertsSubDirectory
链接来确定的。任何放在static/中文件需要以绝对路径的形式引用:/static[filename]
根据webpack的特性,总的来说就是static放不会变动的,第三档的文件,asserts放可能会变动的文件
问题来了,用js动态加载assets或者本文件的图片出现404的状态码
代码实例
<li v-for="(item,index) in images" :key="index"> <img :src="item.src"></li> //js部分 data(){ return { images:[{src:'./1.png'},{./2.png}] } }
跑起来发现图片不显示,错误码为404,
原因:在webpack中会将图片图片来当做模块来用,因为是动态加载的,所以url-loader将无法解析图片地址,然后npm run dev 或者npm run build之后导致路径没有被加工【被webpack解析到的路径都会被解析为/static/img/[filename].png
,完整地址为localhost:8080/static/img/[filename].png
】
解决办法:
①将图片作为模块加载进去,比如images:[{src:<a href="http://www.php.cn/wiki/136.html" target="_blank">require</a>(‘./1.png')},{src:require(‘./2.png')}]
这样webpack就能将其解析。
②将图片放到static目录下,但必须写成绝对路径如images:[{src:”/static/1.png”},{src:”/static/2.png”}]
这样图片也会显示出来,当然你也可以通过在webpack.base.config.js
rrreee
実行すると、画像が表示されず、エラーが発生することがわかりました。コードは 404 でした 理由: webpack では、画像は動的にロードされるため、npm run dev または npm run build 後に画像アドレスを解析できません。パスは処理されません [webpack によって解析されるパスは /static/img/[filename].png
として解析されます。完全なアドレスは localhost:8080/static/img/[filename] です。 ].png
]
解決策:
①image などのモジュールとして画像を読み込みます。 [{src:<a href="http://www.php%20.cn/wiki/136.html" target="_blank">require<img alt="" src="https://img.php.cn/upload/article/000/061/021/92773d244ed695be18623de123ed1903-1.png">('./1.png')},{src:require(' ./2.png')}]</a>
このようにして、Webpack はそれを解析できます。
②画像をstaticディレクトリに置きますが、images:[{src:”/static/1.png”},{src:”/static/2.png”}のように絶対パスを記述する必要があります。 ]
このようにすると、もちろん画像も表示されますが、webpack.base.config.js
で定義することでパスの記述長を短くすることもできます。
もちろん、ローカル画像が多すぎるとこうやって書くのは面倒だというお話ですが、実際にはこのように操作を簡略化しています。
ステップ 1: 静的で新しい json フォルダーを作成します 🎜 この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。 🎜🎜推奨読書: 🎜🎜🎜angularjs で http サーバーを使用する方法🎜🎜🎜🎜🎜 vue でキープアライブを使用する方法の詳細な説明🎜🎜🎜以上がvue:src がファイル パス エラーを処理する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。