当前位置: 首页 > 知识库问答 >
问题:

Vue cli生产版本不显示静态映像

丰景同
2023-03-14

我正在尝试让我们的徽标显示在vue cli生产版本中。

如果我执行了vue cli服务(运行webpack dev server),图像将解析(我可以在web浏览器中看到它们)。但是,如果我提供捆绑文件(使用node或其他方式),图像将无法解析,尽管它们位于正确的文件夹中。我可以在我的网络选项卡中看到200 OK请求http://localhost:8888/img/logo.fdcc9ca9.png,这意味着在正确的位置可以看到名为object的正确文件。我也可以在“我的资源”选项卡中的适当位置看到它。

另外,如果我检查元素,它看起来是这样的,看起来也是正确的:

<img data-v-0242e324="" src="/img/logo.fdcc9ca9.png" alt="logo">

尽管如此,在生产构建时,图像显示了类超文本标记语言“破碎图像”的缩略图。

怎么了?我如何才能不在生产构建中显示“损坏的图像”缩略图?为什么它在webpack dev服务器上工作,而不是在生产环境中工作?

标志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

共有1个答案

司寇阳曦
2023-03-14

答案是我们的API配置错误。

简而言之,没有图像(或字体)的处理程序。正如@aBiscuit所指出的,直接在浏览器中尝试请求返回索引的图像URL。html,这是API对它不理解的堆栈文件请求的回退。

如果没有我们的代码,这是没有帮助的,但是在我们的路线处理中添加以下内容解决了问题:

routes.ts

router.get('/img/:file', async (ctx, next) => {
    await next();
    await send(ctx, `build/public/img/${ctx.params.file}`);
});
 类似资料:
  • 我正在运行

  • 我是否需要在 iReport 设计器中配置某些内容??我错过了什么吗??

  • 当需要将应用部署到生产环境时,只需运行 vite build 命令。默认情况下,它使用 <root>/index.html 作为构建入口点,并生成一个适合通过静态部署的应用包。查看 部署静态站点 获取常见服务的部署指引。 浏览器兼容性 生产版本假设浏览器对 原生 ES 模块动态导入 有基本支持。默认情况下,所有代码构建都会以 支持原生 ESM script 标签的浏览器 为目标。 一个轻量级的 动

  • 我们有穆勒软件的非生产版本吗?基本上,我们在AWS上执行poC,并使用mulesoft作为中间件。是否有我们可以部署的 mulesoft 开发人员版本?

  • 我有一些带有Quarkus的java Web应用程序。并且它可以完美地使用runner.jar文件。但是当我使用Quarkus: dev模式时,它没有显示静态内容(只有白色背景)。而且那很奇怪,因为REST Services可以正常工作。而且是的我在编译源代码时将所有Web资源复制到main/Resources/META-INF中。

  • 今天我和jenv一起玩,将Java1.8设置为全局版本,将1.7设置为本地项目。此后,mvn命令在全局位置显示为java版本12- 而Java版本显示如预期- 我试图卸载和安装maven通过sdkman再次,在Mac上。虽然它没有新鲜下载。我仍然得到同样的错误。 我该怎么解决这个问题?