Vue.js utilizza vue-loader, un caricatore per WebPack che è impostato per riscrivere / convertire i percorsi in fase di compilazione, in modo da consentirti di non preoccuparti dei percorsi statici che differirebbero tra le distribuzioni (locale, dev, una piattaforma di hosting o l'altra) , consentendo di utilizzare i percorsi del file system locale relativi . Aggiunge anche altri vantaggi come la memorizzazione nella cache delle risorse e il controllo delle versioni (probabilmente puoi vederlo controllando l' srcURL effettivo generato).
Quindi avere un src che sarebbe normalmente gestito da vue-loader/ WebPack impostato su un'espressione dinamica, valutata in fase di esecuzione, aggirerà questo meccanismo e l'URL dinamico generato non sarà valido nel contesto della distribuzione effettiva (a meno che non sia completamente qualificato, questa è un'eccezione ).
Se invece utilizzassi una requirechiamata di funzione nell'espressione dinamica, vue-loader/ WebPack la vedrà e applicherà la solita magia.
Ad esempio, questo non funzionerebbe:
<img alt="Logo" :src="logo" />
computed: {
logo() {
return this.colorMode === 'dark'
? './assets/logo-dark.png'
: './assets/logo-white.png';
}
}
Mentre questo funzionerebbe:
<img alt="Logo" :src="logo" />
computed: {
logo() {
return this.colorMode === 'dark'
? require('./assets/logo-dark.png')
: require('./assets/logo-white.png');
}
}
L'ho appena scoperto da solo. Mi ci è voluta un'ora ma ... vivi, impari, vero? 😊
@/assets/+ items.image) "height =" 200px "> </v-img>" anche questo ha risolto il problema