使用 webpack 和 vue-cli 的网站图标

Favicon with webpack and vue-cli

大家好,我有一个困境。 index.html 是由 webpack 为我的 vue 项目创建的。它目前正在 dist 文件夹中寻找图标,如下所示。然而,图标文件夹甚至不存在于 dist/img 文件夹中。我没有配置 webpack,我只是在管理站点,老实说,我对此了解不多。我不知道如何将这些文件放在 dist 文件夹中,并让它保持在 .gitignore 文件中,我很确定他们不希望我弄乱它。我怎样才能将这些文件放在 webpack 将拾取它们的地方,或者编辑 webpack 以在不同的位置查找文件?

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <meta http-equiv="X-UA-Compatible" content="IE=edge" />
    <meta name="viewport" content="width=device-width,initial-scale=1.0" />
    <title>Vue App</title>
    <link href="/bundle.js" rel="preload" as="script" />
    <meta
      name="viewport"
      content="width=device-width,initial-scale=1,user-scalable=no"
    />
    <link
      rel="icon"
      type="image/png"
      sizes="32x32"
      href="/img/icons/favicon-32x32.png"
    />
    <link
      rel="icon"
      type="image/png"
      sizes="16x16"
      href="/img/icons/favicon-16x16.png"
    />
    <link rel="manifest" href="/manifest.json" />
    <meta name="theme-color" content="#4DBA87" />
    <meta name="apple-mobile-web-app-capable" content="no" />
    <meta name="apple-mobile-web-app-status-bar-style" content="default" />
    <meta name="apple-mobile-web-app-title" content="creative-engine-spa" />
    <link
      rel="apple-touch-icon"
      href="/img/icons/apple-touch-icon-152x152.png"
    />
    <link
      rel="mask-icon"
      href="/img/icons/safari-pinned-tab.svg"
      color="#4DBA87"
    />
    <meta
      name="msapplication-TileImage"
      content="/img/icons/msapplication-icon-144x144.png"
    />
    <meta name="msapplication-TileColor" content="#000000" />
  </head>

  <body>
    <div id="app"></div>
    <script type="text/javascript" src="/bundle.js"></script>
  </body>
</html>

我不知道这是否能帮助大家解决我的问题,但我的 vue.config.js 文件中也有这段代码

const path = require("path");

module.exports = {
  chainWebpack: config => {
    config;
    config.plugin("html").tap(args => {
      args[0].meta = {
        viewport: "width=device-width,initial-scale=1,user-scalable=no"
      };

      return args;
    });
  },
  configureWebpack: {
    devtool: "cheap-source-map",
    output: {
      filename: "bundle.js"
    }
  }
};

您可以在 vue.config.js 文件中定义图标的路径

阅读更多信息here

const path = require("path");

module.exports = {
  chainWebpack: config => {
    config;
    config.plugin("html").tap(args => {
      args[0].meta = {
        viewport: "width=device-width,initial-scale=1,user-scalable=no"
      };
      args[0].inject = true;
      args[0].filename = "index.html";
      args[0].favicon = "./public/favicon.ico"; // path to favicon

      return args;
    });
  },
  configureWebpack: {
    devtool: "cheap-source-map",
    output: {
      filename: "bundle.js"
    }
  }
};

我必须找到我的静态文件夹。在我的例子中,它是 public 文件夹并将文件放到那里。在文件夹结构中,我想抓住它们。显然你的静态文件夹每次都会构建。在我的例子中,我的文件夹结构看起来像这样 public/img/favicon-32x32.png