我正在尝试在vue-cli生产构建中显示我们的标志。如果我运行
尽管如此,在生产构建中,图像显示HTML class“broken image”缩略图。
出了什么问题?我如何在生产构建中不显示“broken image”缩略图?为什么它在webpack-dev-server上可以工作但在生产环境中不行? Logo.vue
vue-cli-service serve
(运行webpack开发服务器),图像会被解析(我可以在Web浏览器中看到它们)。但是,如果我提供捆绑文件(使用node或其他方式),则图像无法解析,尽管它们位于正确的文件夹中。我可以在我的网络选项卡中看到一个200 OK请求,请求的是http://localhost:8888/img/logo.fdcc9ca9.png
,这意味着正确命名的对象位于正确的位置,并且我也可以在我的源选项卡中看到它。另外,如果我检查元素,它看起来像这样,这也是正确的:<img data-v-0242e324="" src="/img/logo.fdcc9ca9.png" alt="logo">
尽管如此,在生产构建中,图像显示HTML class“broken image”缩略图。
出了什么问题?我如何在生产构建中不显示“broken image”缩略图?为什么它在webpack-dev-server上可以工作但在生产环境中不行? Logo.vue
<template>
<img src="../img/logo.png" alt="logo">
</template>
<script>
...
</script>
vue.config.js
const path = require('path');
const webpack = require('webpack');
module.exports = {
chainWebpack: config => {
config.resolve.alias
.set('@', path.resolve(__dirname, 'client/src'));
config
.plugin('provide')
.use(webpack.ProvidePlugin, [{
$: 'jquery',
jquery: 'jquery',
jQuery: 'jquery',
'window.jQuery': 'jquery'
}]);
config.plugin("html")
.tap(args => {
args[0].template = "./client/index.html"
return args
})
},
runtimeCompiler: true,
devServer: {
proxy: 'http://localhost:8888'
}
}
package.json
...
"serve:ui": "vue-cli-service serve client/src/main.js",
"build:ui": "vue-cli-service build --dest build/public/ client/src/main.js",
...
文件夹结构,开发
client/
src/
img/
logo.png
components/
Logo.vue
文件夹结构,输出构建
build/
public/
css/
fonts/
img/
logo.fcdd9ca9.png
js/
index.html
your-domain.com/img/logo.fdcc9ca9.png
?它是否正确加载图片或者有其他响应? - aBiscuit