Vue.js ใช้vue-loader
ตัวโหลดสำหรับ WebPack ซึ่งตั้งค่าให้เขียนใหม่ / แปลงเส้นทางในเวลาคอมไพล์เพื่อให้คุณไม่ต้องกังวลกับเส้นทางคงที่ซึ่งจะแตกต่างกันระหว่างการปรับใช้ (โลคัล, dev, หนึ่งแพลตฟอร์มโฮสติ้งหรืออื่น ๆ ) โดยช่วยให้คุณสามารถใช้เส้นทางระบบแฟ้มท้องถิ่นญาติ นอกจากนี้ยังเพิ่มประโยชน์อื่น ๆ เช่นการแคชเนื้อหาและการกำหนดเวอร์ชัน (คุณอาจเห็นสิ่งนี้ได้โดยตรวจสอบsrc
URL จริงที่สร้างขึ้น)
ดังนั้นการมี src ที่ปกติจะจัดการโดยvue-loader
/ WebPack ตั้งค่าเป็นนิพจน์แบบไดนามิกซึ่งประเมินที่รันไทม์จะหลีกเลี่ยงกลไกนี้และ URL แบบไดนามิกที่สร้างขึ้นจะไม่ถูกต้องในบริบทของการปรับใช้จริง (เว้นแต่ว่าจะมีคุณสมบัติครบถ้วนนั่นเป็นข้อยกเว้น ).
หากเป็นเช่นนั้นคุณจะใช้การrequire
เรียกฟังก์ชันในนิพจน์ไดนามิกvue-loader
/ WebPack จะเห็นและใช้เวทมนตร์ตามปกติ
ตัวอย่างเช่นสิ่งนี้ใช้ไม่ได้:
<img alt="Logo" :src="logo" />
computed: {
logo() {
return this.colorMode === 'dark'
? './assets/logo-dark.png'
: './assets/logo-white.png';
}
}
แม้ว่าจะใช้งานได้:
<img alt="Logo" :src="logo" />
computed: {
logo() {
return this.colorMode === 'dark'
? require('./assets/logo-dark.png')
: require('./assets/logo-white.png');
}
}
ฉันเพิ่งค้นพบเกี่ยวกับเรื่องนี้ด้วยตัวเอง ฉันใช้เวลาหนึ่งชั่วโมง แต่ ... คุณมีชีวิตอยู่คุณเรียนรู้ใช่ไหม? 😊
@/assets/
+ items.image) "height =" 200px "> </v-img>` อันนี้ก็แก้ปัญหาได้เช่นกัน