升级到 Angular 16 后“警告无法找到样式表”

问题描述 投票:0回答:1

我们最近从 Angular 9 升级到 16,我不断收到有关未找到样式表的警告。生成警告的内容包含在index.html中:

    <head>
      <!-- snip -->
      <base href="/">
      <link rel="stylesheet" type="text/css" href="./assets/css/googleFont.css">
      <link rel="stylesheet" type="text/css" href="./assets/css/blueprint-ui.css">
      <link rel="stylesheet" type="text/css" href="./assets/fonts/css/font-awesome.min.css">
      <link rel="stylesheet" type="text/css" href="./assets/fonts/css/fm-icon-font.css" />
    </head>

当我运行

ng serve
时,这会显示在节点控制台中:

Warning: Unable to locate stylesheet: C:\Developers\g3h-cucor-ui\assets\css\googleFont.css    
Warning: Unable to locate stylesheet: C:\Developers\g3h-cucor-ui\assets\css\blueprint-ui.css    
Warning: Unable to locate stylesheet: C:\Developers\g3h-cucor-ui\assets\fonts\css\font-awesome.min.css    
Warning: Unable to locate stylesheet: C:\Developers\g3h-cucor-ui\assets\fonts\css\fm-icon-font.css

浏览器控制台中出现类似警告:

polyfills.js:12 [webpack-dev-server] WARNING
Unable to locate stylesheet: C:\Developers\g3h-cucor-ui\assets\css\googleFont.css
polyfills.js:12 [webpack-dev-server] WARNING
Unable to locate stylesheet: C:\Developers\g3h-cucor-ui\assets\css\blueprint-ui.css
polyfills.js:12 [webpack-dev-server] WARNING
Unable to locate stylesheet: C:\Developers\g3h-cucor-ui\assets\fonts\css\font-awesome.min.css
polyfills.js:12 [webpack-dev-server] WARNING
Unable to locate stylesheet: C:\Developers\g3h-cucor-ui\assets\fonts\css\fm-icon-font.css

有趣的是,这些路径都是错误的。正确的路径是

C:\Developers\g3h-cucor-ui\src\assets\css\filename.css
。请注意额外的
src

这些样式似乎在页面上有效,所以这比其他任何事情都更令人烦恼。我尝试更改链接以包含

src
部分:

    <link rel="stylesheet" type="text/css" href="./src/assets/css/blueprint-ui.css">

这不起作用。样式不再显示,事实上警告已更改为

Unable to locate stylesheet: C:\Developers\g3h-cucor-ui\src\assets\css\blueprint-ui.css
。这非常奇怪,因为这是文件的合法路径。有人能解释一下吗?

angular webpack
1个回答
0
投票

对我来说,该问题仅发生在开发环境(本地)中。发生这种情况是因为我的项目在 Angular 11 上运行良好,但现在已迁移到 Angular 12,并且当使用

ng serve
在本地运行时,angular.json 文件正在运行启用了优化的代码。禁用优化在执行过程中不再触发警告。

我将属性更改为 false,警告不再显示。我的项目也没有构建的“开发”会话;我从使用 Angular CLI 创建的新项目的 angular.json 中复制了它。

© www.soinside.com 2019 - 2024. All rights reserved.