vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > Vue动态渲染图片路径报错

Vue动态渲染图片路径报错问题及解决过程

作者:识海.

这段文章主要讲述了在Vue项目中使用动态渲染加载图片时遇到路径错误的问题,通过将图片路径写为`require`的方式成功解决了问题,关键在于在于直接路径无法被webpack处理,需通过`require`引用

Vue动态渲染图片路径报错

今天在做项目的时候在本地assets中后动态渲染加载图片,死活加载不出来,F12控制台提示图片存在路径错误,但是不使用动态渲染,一模一样的路径,就可以渲染出来,就很神奇。

代码如下,可以看见动态渲染的地址直接写的地址一模一样,但就是渲染不出来。

<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png" />
    <img alt="Vue logo" :src="url" />
    <HelloWorld />
  </div>
</template>

<script>
import HelloWorld from "./components/HelloWorld.vue";

export default {
  name: "App",
  components: {
    HelloWorld,
  },
  data() {
    return {
      url: "./assets/logo.png",
    };
  },
};
</script>

其实原因就在于

放置在 public 目录下或通过绝对路径被引用。这类资源将会直接被拷贝,而不会经过 webpack 的处理。

可在Vue CLI官网看出:

其中说到了直接路径

<img alt="Vue logo" src="./assets/logo.png" />会编译为 require('./image.png')

所以通过动态渲染不能直接写 

data() {
    return {
      url: "./assets/logo.png",
    };
  },

必须写上require

data() {
    return {
      url: require("./assets/logo.png"),
    };
  },

这样图片就能成功渲染了

不在出现路径错误。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文