【问题标题】:Why Angular does not correctly support files that are in /?为什么 Angular 不能正确支持 / 中的文件?
【发布时间】:2017-06-21 21:08:57
【问题描述】:

我是 Angular 2+ 的新手,我已经在使用 Angular 4 开发应用程序,我使用 CLI 创建项目并为其提供服务。

我正在尝试将manifest.json 添加到我的项目中,并且我还尝试添加一个网站图标,这是我的代码:

<link rel="icon" type="image/x-icon" href="favicon.ico">
<link rel="manifest" href="manifest.json">

我在src/ 中添加了这两个文件,这是 Angular 应用程序的根目录。当我在浏览器上打开应用程序时,网站图标未显示 (404),并且也未找到清单 (404)。

当我将网站图标放入另一个目录 (src/assets/icon/) 时,它按预期工作,但对于 manifest.json,它应该在根目录中。

Angular 正在做的事情对我来说是非常有线的,当我在 Chrome 上按 Ctrl+U 浏览网页源代码时,当我点击 HTML 页面上的 favicon.ico 或 manifest.json 链接时,它向我显示Angular 的index.html

为什么会这样?

如何在 src/ 旁边添加我的 manifest.jsonfavicon.ico 并访问它们?

【问题讨论】:

  • for manifest.json, it should be in the root. 对于清单文件,您应该可以将其放入资产或任何其他路径中。

标签: angular webpack angular-cli progressive-web-apps


【解决方案1】:

您只需在项目根目录中的.angular-cli.json 文件中定义您的资源。

apps[0].assets 中,您可以为 CLI 添加文件以包含在包中。只需从src/ 目录中选择相对路径即可。 I've included one I have for a project of mine as reference。 (第 10-14 行是你应该看的)

【讨论】:

【解决方案2】:

角度 12+ 的正确答案(可能从角度 6+ 开始工作)

资产现在在项目 -> YOUR_NAME -> 架构师 -> 构建 -> 选项 -> 资产下的 angular.json 中配置,并支持字符串或对象值。对象值允许您从资产文件夹添加文件,但将它们移动到根目录,这是 manifest.json 等文件所必需的。

  "assets": [
    "src/assets",
    {
      "glob": "**/*",
      "input": "src/assets/favicons",
      "output": "."
    }
  ],

glob: 选择哪些文件 (**/* -> all) inout:在哪个文件夹中查找文件 输出:应该将它们复制到哪个文件中以用于 dist

查看官方文档了解更多信息:https://angular.io/guide/workspace-config#assets-configuration

【讨论】:

    猜你喜欢
    • 2016-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-26
    • 1970-01-01
    • 2019-04-20
    • 1970-01-01
    相关资源
    最近更新 更多