我是vuejs + webpack + electron的新手,我正在使用这些工具开始一个新项目。
我很难在我的代码中检索资产的路径。
我的项目结构如下:
/my-project
/app
/components
componentA.vue
...
App.vue
main.js
/dist
/assets
logo.png
package.json
webpack.config.js
...
我的webpack.config.js看起来像:
module.exports = {
// This is the "main" file which should include all other modules
entry: './app/main.js',
// Where should the compiled file go?
output: {
// To the `dist` folder
path: './dist',
// With the filename `build.js` so it's dist/build.js
filename: 'build.js'
},
module: {
loaders: [
{
test: /\.vue$/,
loader: 'vue-loader'
},
{
test: /\.js$/,
loader: 'babel-loader',
query: {
presets: ['es2015']
},
exclude: /node_modules/
},
{
test: /\.(jpeg|png|gif|svg)$/,
loader: "file-loader?name=[name].[ext]"
}
]
},
resolve: {
alias: {
'vue$': 'vue/dist/vue.common.js',
}
}
}
在文件componentA.vue中,我尝试执行以下操作:
<template>
<div>
<img class="ui small image" src="../../assets/logo.png">
</div>
</template>
<script>
...
</script>
但我有以下错误
Failed to load resource: net::ERR_FILE_NOT_FOUND file:///logo.png
浏览器试图加载file:///logo.png(这是错误的,因为它不是我的资产的完整路径,它错过了我的项目目录的整个路径)所以我试图把我在output / dist文件夹中的资产没有结果(但我不确定我是否正确完成了)。
你能帮我解决这个问题吗? 非常感谢!
答案 0 :(得分:5)
为了让Webpack返回正确的路径,您需要进行以下更改:
<template>
<div>
<img class="ui small image" :src="imageSource">
</div>
</template>
<script>
export default {
data(){
return {
imageSource: require('../../assets/logo.png')
}
}
</script>
答案 1 :(得分:0)
另一种方法是将图像存储在static
目录中。有了它,您可以直接在html指令中添加图像路径。
<template>
<div>
<img src="/static/example.png">
</div>
</template>
<script>
export default {}
</script>