Maison  >  Article  >  interface Web  >  Explication détaillée d'exemples d'utilisation de chemins d'alias pour référencer des adresses d'images statiques dans webpack+vue

Explication détaillée d'exemples d'utilisation de chemins d'alias pour référencer des adresses d'images statiques dans webpack+vue

小云云
小云云original
2018-01-16 10:29:232018parcourir

Tout le monde connaît les avantages des alias de webpack, mais dans les modèles de vue, des problèmes surviennent toujours lors de l'utilisation d'alias pour les adresses d'images. Pendant longtemps, je pensais que c'était à cause de webpack. Cet article présente principalement l'utilisation de chemins d'alias pour référencer des adresses d'images statiques dans webpack+vue. L'éditeur pense que c'est plutôt bien. Maintenant, je vais le partager avec vous et le donner comme référence. Suivons l'éditeur pour y jeter un œil, j'espère que cela aidera tout le monde.


alias: {
 'src': path.resolve(__dirname, '../src'),
 'assets': path.resolve(__dirname, '../src/assets'),
 'components': path.resolve(__dirname, '../src/components')
}


<template>
 <img src="assets/images/logo.jpg" />
</template>
<script>
import &#39;assets/css/style.css&#39;
</script>
<style>
.logo {
 background: url(asset/images/bg.jpg)
}
</style>

Avec le code ci-dessus, vous constaterez que seule l'introduction de style.css, l'adresse de l'image et l'arrière-plan est réussi. L'adresse de l'image ne parviendra pas à être analysée...

Après diverses recherches pour trouver la raison (à ce moment, vous constaterez que la recherche de Baidu pour ces contenus techniques est vraiment un combattant parmi les ordures ), et j'ai finalement trouvé la raison...

vue-html-loader et css-loader traduisent les URL non racine en chemins relatifs Afin de le traiter comme un chemin de module, préfixez-le avec. ~

Ajoutez simplement un ~

devant l'alias. Le code final s'écrit :


alias: {
 &#39;src&#39;: path.resolve(__dirname, &#39;../src&#39;),
 &#39;assets&#39;: path.resolve(__dirname, &#39;../src/assets&#39;),
 &#39;components&#39;: path.resolve(__dirname, &#39;../src/components&#39;)
}


<template>
 <img src="~assets/images/logo.jpg" />
</template>
<script>
import &#39;assets/css/style.css&#39;
</script>
<style>
.logo {
 background: url(~asset/images/bg.jpg)
}
</style>
Cela signifie : Indiquez au chargeur qu'il s'agit d'un module, pas d'un chemin relatif

Remarque : Uniquement l'adresse du fichier statique dans le modèle et l'adresse du fichier statique dans le style, il faut ajouter ~, dans le script, l'alias est défini comme quoi que ce soit.

À ce stade, je lutte avec le problème depuis plusieurs mois et je l'ai finalement résolu...

Au fait, je publierai une liste des alias que j'utilise :


alias: {
  &#39;assets&#39;: path.resolve(__dirname, &#39;../src/assets&#39;),
  &#39;src&#39;: path.resolve(__dirname, &#39;../src&#39;),
  &#39;~api&#39;: path.resolve(__dirname, &#39;../src/api&#39;),
  &#39;~components&#39;: path.resolve(__dirname, &#39;../src/components&#39;),
  &#39;~pages&#39;: path.resolve(__dirname, &#39;../src/pages&#39;),
  &#39;~router&#39;: path.resolve(__dirname, &#39;../src/router&#39;),
  &#39;~store&#39;: path.resolve(__dirname, &#39;../src/store&#39;),
  &#39;~utils&#39;: path.resolve(__dirname, &#39;../src/utils&#39;)
}
Recommandations associées :

PHP exemple de code régulier pour obtenir toutes les adresses d'images sur la page

Expression régulière pour traiter les adresses d'images et les balises img Résumé et partage des méthodes

Comment pour remplacer l'adresse de l'image (img src) dans une chaîne par une expression régulière JavaScript

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn