【发布时间】:2020-02-11 03:49:53
【问题描述】:
我正在使用 Laravel 5.8 和 Vue 2.6 并尝试在我的单个文件组件中使用图像文件的相对路径。我已经查看了How to import and use image in a Vue single file component? 中的建议 但无法让它工作。
尝试时:
<template>
<div id="app">
<img src="./assets/logo.png">
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss">
</style>
我明白了:
未找到此相关模块: * ./assets/logo.png 在 ./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/vue-loader/lib? ?vue-loader-options!./resources/js/components/xxxx.vue?vue&type=template&id=abd0e146&scoped=true&
当我尝试时:
<template>
<div id="app">
<img :src="image" />
</div>
</template>
<script>
import image from "./assets/logo.png"
export default {
data: function () {
return {
image: image
}
}
}
</script>
<style lang="scss">
</style>
我明白了:
未找到此相关模块: * ./assets/logo.png 在 ./node_modules/babel-loader/lib??ref--4-0!./node_modules/vue-loader/lib??vue-loader-options!./resources/js / components/xxxx.vue?vue&type=script&lang=js&
我是否缺少 webpack-mix 或 vue-loader 的内容?
编辑:
使用简单的静态引用 (src="/assets/logo.png") 在本地开发服务器上有效,但在生产服务器上无效。
我已经看到了许多针对此基本图像文件引用的建议解决方案,但对存在如此多的可能性而不是单一的最佳实践感到困惑。再次,希望在开发和生产中使用 Laravel/Laravel Mix/Vue 和 SFC 时找到最佳实践。
【问题讨论】:
-
当你导入
logo.png时,错误怎么会显示logo.jpg -
对不起,这是一个 png 文件。我改变了我的问题以反映这一点。
-
您的图像存储在哪里?它在哪里?请完整路径
-
Laravel 5.8 使用公用文件夹进行部署。我的图片目前在公共文件夹中,所以绝对路径是“localhost:8000/public/img/widgets/logo.png”。以上为讨论之简化。
-
你在用
php artisan serve吗?
标签: laravel vue.js webpack vue-component