vue-cli3 public 文件夹 img 没有显示

vue-cli3 public folder img doesn't show up

有谁知道如何在 vue 项目的 public 文件夹中使用带有 img 文件的 src 属性?浏览器找不到图像。

我正在使用 Vue CLI 3.7.0

▼ 文件夹

 |
 +-- src
 |    
 +-- public
       |  
       +-- favicon.ico
       +-- logo.png
       +-- index.html

我试过 :src="xxx" 之类的方法,但没有用。

<template>
    <div>
        <img :src="'/favicon.ico'">
        <img :src="`${publicPath}favicon.ico`">
     </div>
</template>

<script>
    export default {
        data: function() {
            return {
                publicPath: process.env.BASE_URL
            };
        }
    }
</script>

只需使用 <img src="/favicon.ico">.

更新

从下面的评论来看,您似乎 运行宁

vue serve

只有 Vue CLI 项目 知道 public 目录和 process.env.BASE_URL。您需要 运行 您的 项目 而不是使用 vue serveinstant prototyping

换句话说,运行

npm run serve

https://cli.vuejs.org/guide/cli-service.html#using-the-binary


如果你有这样的文件结构

├── public
│   ├── favicon.html
│   ├── index.html
│   ├── logo.png

那么您要显示的代码 logo.png 应该类似于

<template>
  <div>
    <img :src="`${publicPath}logo.png`">
  </div>
</template>

<script>
export default {
  data () {
    return {
      publicPath: process.env.BASE_URL
    }
  }
}
</script>

https://cli.vuejs.org/guide/html-and-static-assets.html#the-public-folder


如果你的图片在

├── public
│   ├── img
│   │   ├── logo.png

那么你的组件模板代码就变成了

<img :src="`${publicPath}img/logo.png`">