【问题标题】:VueJS webpack PWA assets icons manifest.jsonVueJS webpack PWA 资产图标 manifest.json
【发布时间】:2020-11-03 12:25:34
【问题描述】:

我在vue.config.js 中配置了我的 PWA manifest.json,如下所示。如何配置 PWA 图标以引用 assets/ 文件夹中的图像?

module.exports = {
    pwa: {
        manifestOptions: {
          name: process.env.VUE_APP_APP_NAME,
          short_name: process.env.VUE_APP_SHORT_NAME,
          start_url: process.env.VUE_APP_START_URL,
          display: 'standalone',
          theme_color: process.env.VUE_APP_PRIMARY_COLOR,
          background_color: process.env.VUE_APP_BACKGROUND_COLOR,
          icons: [
            {
              src: `src/assets/${process.env.VUE_APP_COMPANY}/logo-192x192.png`,
              sizes: "192x192",
              type: "image/png"
            },
            {
              src: `src/assets/${process.env.VUE_APP_COMPANY}/logo-512x512.png`,
              sizes: "512x512",
              type: "image/png"
            }
          ]
        }
    }
}

当我运行我的应用程序时,我收到了这个错误:

http://localhost:8080/src/assets/company/logo-512x512.png (Download error or resource isn't a valid image)

我不明白为什么在 URL 中设置了/src

【问题讨论】:

  • /src 已在 url 中设置,因为您已将其设置在 src 定义中。
  • @geoidesic 但我如何才能访问 src 文件夹中的资产文件?

标签: vue.js webpack progressive-web-apps


【解决方案1】:

使用 static assets from the public directory(例如,public/img/company/logo-192x192.pngpublic/img/company/logo-512x512.png),它们按原样复制到构建输出。然后你的vue.config.js 会像这样引用它们:

// vue.config.js
module.exports = {
  pwa: {
    manifestOptions: {
      icons: [
        {
          src: `/img/${process.env.VUE_APP_COMPANY}/logo-192x192.png`,
          sizes: "192x192",
          type: "image/png"
        },
        {
          src: `/img/${process.env.VUE_APP_COMPANY}/logo-512x512.png`,
          sizes: "512x512",
          type: "image/png"
        }
      ]
    }
  }
}

【讨论】:

  • 是的,我知道如果我在公共目录中使用图像,它可以工作,但是没有办法将资产目录中的图像用于 PWA 图标?目前它适用于 favicon 应用程序:config.plugin("html").tap((args) => { args[0].favicon = 'src/assets/${process.env.VUE_APP_COMPANY}/favicon.ico';... 这就是为什么我正在寻找对 PWA 图标做同样的事情的原因。但如果不可能,我会将我的 PWA 文件放在公共目录中
  • 这不是不可能的。通过配置 Webpack 处理(优化)来自assets 的图标,并将输出复制到dist,它可以与pwa 配置分开完成。然后pwa 配置将引用dist 中的路径,即输出图标所在的位置。
猜你喜欢
  • 2018-06-12
  • 2019-01-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多