VueJS 部署生产版本显示损坏的 png 图像

Posted

技术标签:

【中文标题】VueJS 部署生产版本显示损坏的 png 图像【英文标题】:VueJS deployed production build showing broken png images 【发布时间】:2020-07-06 16:16:18 【问题描述】:

我已经运行了npm run build,这会生成一个包含静态资产(例如图像)的 dist 文件夹。我在 vue 路由器上使用历史模式。

图像的 html 如下所示:

dist 文件夹如下所示:

现在部署站点后,图像已损坏:

但是,img src 是正确的:

那么这里的问题是什么?

【问题讨论】:

【参考方案1】:

我将在这里冒险并猜测问题与您的路线有关,并且相对路径不适用于路线。

如果您的应用程序显示在根目录 / 上,则相对图像路径将起作用,但是因为(并且猜测)您的路由将当前路径更改为类似 /sales 的路径,因此相对路径不再起作用。

您可以通过确保使用相对路径来解决此问题。

例如,如果您使用的是 vue-cli-3 生成的项目,请检查vue.config.js 文件并确保您没有设置publicPath,因为它默认为/

module.exports = 
  publicPath: "./", // <= this will use relative path
;

【讨论】:

我已经为图片添加了 HTML。我正在使用路线和相对图像路径,因此您的假设似乎合理。我正在使用 vue-cli-3 生成的项目。我没有设置公共路径。那么解决方案是什么?将 publicPath 设置为“./”? 我已将 publicPath 添加为“./”,但它仍然无法正常工作 尝试使用/ 而不是./【参考方案2】:

尝试更改 index.js 中包含到目标文件夹的路径的路径,例如:dist。

作为一个 publicPath,我将 ./ 设置为 Daniel 提到的。

这对我有帮助,但我刚刚开始学习 VueJS,所以它可能不是最好的解决方案。

    const routes = [
  
    path: '/dist/',
    name: 'Home',
    component: Home
  ,
  
    path: '/dist/map',
    name: 'Map',
    component: Map
  ,
  
    path: '/dist/store',
    name: 'Store',
    component: Store
  
]

【讨论】:

以上是关于VueJS 部署生产版本显示损坏的 png 图像的主要内容,如果未能解决你的问题,请参考以下文章

使用 opengl 硬件渲染器导出带有颜色条的 MATLAB 冲浪图会导致损坏的 png 文件

Next.js 公共图像未在生产构建中显示

生产中的资产管道问题:CDN中未显示图像

VueJs生产环境部署

电脑提示损坏的图像,没有被指定在Windows上运行,或者它包含错误。怎么解决?

Vue JS中的图像路径[重复]