L'image que je souhaite intégrer à ma page html ne se charge pas, comment faire?

Bonjour tout le monde, j’ai commencé un tutoriel sur Vuemastery qui explique les bases en html, css et Js avec la Vue 2 il n’y a pas très longtemps et je suis bloqué sur un détail. Je dois réussir à insérer une image jpg sur ma page html à l’aide de Js.
Problème, lorsque j’insère l’adresse de l’image que je souhaite afficher sur ma page html et que je refresh, ce n’est pas mon image qui s’affiche mais plutôt une icône qui montre que l’image est bel et bien présente mais qu’elle n’arrive pas à être chargée.

J’espère que l’image s’affiche bien dans mon message, sinon, l’image ressemble à une petite icône avec un paysage. Également, lorsque je fais clic gauche sur l’icône, on me donne l’option de charger l’image mais celle-ci ne se charge pas. voici le code html et Js que j’utilise pour vous situer :

<!DOCTYPE html>
<html>
<html lang="en">
</html>
<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>vue project</title>
  <link rel="stylesheet" href="style.css">
</head>
<body>
  <!-- Import Styles -->
  <link rel="stylesheet" href="./assets/styles.css" />
  <!-- Import Vue.js -->
  <script src="https://unpkg.com/vue@next"></script>

</body>
    <body>
        <div id="app">
            <div class="nav-bar"></div>

            <div class="product-display">
              <div class="product-container">
                    <div class="product-image">
                    <img src="image">
                    
                    </div>
                    <div class="product-info">
                        <h1>{{ product }}</h1>
                    </div>
                </div>
            </div>
        </div>

    <!-- Import App -->
    <script src="./main.js"></script>
    
    
    <!--Mount App -->
    <script>
      const mounteApp = app.mount ('#app')
    </script>
  </body>
</html>

Javascript: 

var app = Vue.createApp({
    data() {
        return {
            product: 'formation vidéo',
            image: ''
        }
    }
})

Si vous avez la réponse à ce problème, n’hésitez pas ça m’aiderait énormément.

Merci à l’avance !

Renaud

Salut Renaud!

Sache que tu peux utiliser 3 backtick ``` sur le forum pour insérer du code. Je l’ai fait pour toi, tu le sauras pour les prochaines fois!

Dans ton code:

<img src="image">

Src représente la source de ton image. Sur Vue, si tu veux insérer une variable à l’intérieur d’une balise HTML, tu dois utiliser :src="" le : indique à Vue d’interpréter ce qui se trouve entre les guillement comme du JavaScript.

Dans ton code JS au bas de la page, tu peux insérer l’url d’une image dans ta variable comme ça:

var app = Vue.createApp({
    data() {
        return {
            product: 'formation vidéo',
            image: 'https://images.pexels.com/photos/1190298/pexels-photo-1190298.jpeg?auto=compress&cs=tinysrgb&w=1260&h=750&dpr=2'"
        }
    }
})

Et dans ton HTML plus haut, tu n’as qu’à utiliser les deux points pour « binder » ta variable à l’attribut!

<img :src="image" />

Remarque que j’ai ajouté un / avant la fin de la braguette pour fermer ta balise!

Autre chose. Fais attention, tu as 2 dans ton code!

image

Tu ne peux avoir qu’un seul body et un head par page.

Je t’ai fait une sandbox pour que tu puisses bien voir!

BY THE WAY, si d’autres membres trouvent ça intéressant, je pourrais sans doute organier un petit quelque chose pour aider les gens à apprendre à programmer. :nerd_face:

Ça marche enfin !!! J’avais bien inséré le lien de mon image (je l’avais enlevée pour le courriel) mais il n’était pas valide. Tu m’as vraiment éclairé sur l’attribut v-bind, je ne comprenais pas son utilité, je sais maintenant que son raccourcis est « : ». Un immense merci pour tous les tips, les éclaircissement et pour la Sandbox, je suis vraiment visuel donc ça va beaucoup m’aider. Tes courriels sont lifesaver, merci encore !!:grin:

Bonne soirée !
Renaud

2 « J'aime »

N’hésites pas si tu as d’autres impasses, ça va me faire plaisir de t’aider!