【问题标题】:Make Angular inline global styles制作 Angular 内联全局样式
【发布时间】:2018-09-01 06:37:01
【问题描述】:

如何配置 Angular 2 以将全局样式内联/注入到 <head> 中的 <style> 标记中?

运行ng new site,然后运行ng serve --prod,在<head> 中提供一个带有<link href="styles.x.bundle.css" rel="stylesheet"/> 标记的页面。没有内联。

如果我使用ng serve --prod --extract-css=false,则样式会打包到styles.x.bundle.js 文件中,该文件最后通过<script> 标签加载。仍然没有内联。

但我希望将 CSS 直接内联/注入到 <head>。


编辑:注意我仍然想维护一个单独的样式文件(所以我可以选择使用 SASS)。

【问题讨论】:

  • 值得一提你想要它的原因,我想在你最初的loading... 屏幕上避免flash of unstyled content
  • @Stavm 是的,没错。我想加快初始页面加载速度(通过减少所需的 HTTP 请求的数量),而不需要您所说的初始闪存。

标签: css angular angular-cli


【解决方案1】:

在修改了一些构建配置后,通过执行以下操作设法解决此问题:

  1. 在angular.json 的生产构建配置中将extractCss 值设置为false

或,只需运行以下命令:

ng config "projects.site.architect.build.configurations.production.extractCss" false

然后使用生产标志服务

ng s --prod

我只使用以下文件对此进行了测试:src/app/styles.css,所以不确定这是否会将所有样式输出为内联...

但根据 OP,这些全局样式是内联的

【讨论】:

  • -1 我相信这是产生我所说的当我说“样式被打包到通过
  • 无意冒犯马特,但我确实对此进行了测试并且它有效。内联样式在 head 标签内的 style 标签内。你介意试一试吗?
  • 我也是。当我说“我相信”时,我试图使用柔和的语气:)
  • 在这里,我将发布我对您的说明的复制以及最终输出。一会儿……
  • 啊,好吧,酷酷酷...是的,我们在同一个波长上。不幸的是,不要认为有办法做到这一点,除非!!!!您手动链接样式表...我将发布更新,但可能不适合您的需求:(
猜你喜欢
  • 2020-09-02
  • 1970-01-01
  • 2017-08-27
  • 1970-01-01
  • 2021-08-18
  • 1970-01-01
  • 1970-01-01
  • 2014-10-28
  • 1970-01-01
相关资源
最近更新 更多