Javascript Vue.js动态图像路径未加载

Javascript Vue.js动态图像路径未加载,javascript,webpack,vue.js,vuejs2,Javascript,Webpack,Vue.js,Vuejs2,我正在尝试在单个文件组件中动态加载图像,但遇到一个错误,即找不到该模块。我想我正试图做与之相同的事情,但我不确定我做错了什么。我用电脑来设置我的项目 以下是我的模板中的相关标记: <router-link :to="{ name: 'JobsDetail', params: { slug: job.slug } }"> <span class="icon"> <img :src="getIconPath(job.slug)"/>

我正在尝试在单个文件组件中动态加载图像,但遇到一个错误,即找不到该模块。我想我正试图做与之相同的事情,但我不确定我做错了什么。我用电脑来设置我的项目

以下是我的模板中的相关标记:

<router-link :to="{ name: 'JobsDetail', params: { slug: job.slug } }">
    <span class="icon">
        <img :src="getIconPath(job.slug)"/>
    </span>
    {{ job.title }}
</router-link>
我在
/src/assets/
目录中有这些图像。我在浏览器控制台中遇到的错误是:

[Vue warn]:渲染中出错:“错误:找不到模块”。/some icon.png。“


我不确定这是网页包配置问题,还是getIconPath函数的问题。感谢您的帮助,谢谢

考虑到您的JavaScript代码位于
/src/components/JobList.vue
,图像位于
/src/assets/
,请按如下方式使用:

方法:{
getIconPath(iconName){
返回iconName?要求(`../assets/${iconName}`):“”
}
}

在我看来,当webpack在dev或prod中构建时,静态资产(如图像)应该变成/static

查看配置文件:,您有以下配置(前提是您没有更改任何内容):

所以src应该是这样的:

<img src="/static/whatEverMyIconIs.png"/>
这可能会使您的src url(取决于图标的加载方式):



JS代码的文件(路径)在哪里?@acdcjunior这都是位于
/src/components/JobList.vue中的单个文件组件的内部。您可以尝试硬编码吗?您确定它存在的一些文件,如
/src/assets/my icon.png
您可以执行如下硬编码:
。如果它不工作,您可以粘贴整个堆栈跟踪(而不仅仅是第一行)?它包含重要信息。根据您的建议,可以尝试硬编码图标名称。我不确定它到底为什么工作,但我在require函数调用中添加了JSON图标路径“icon name.png”,而不是添加.png。
// Paths
assetsSubDirectory: 'static',
assetsPublicPath: '/',
<img src="/static/whatEverMyIconIs.png"/>
 {
    test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
    loader: 'url-loader',
    options: {
      limit: 10000,
      name: utils.assetsPath('img/[name].[hash:7].[ext]')
    }
  },
<img src="/static/img/whatEverMyIconIs.png"/>