免责声明:因此,关于CSS以及关于单个或多个CSS文件的辩论有一些疑问,但是我认为这有点不同
我有一个使用Angular Material 2的大型Angular 7应用,我想介绍一下主题。每个主题都将在用户登录时检索(主题已保存在服务器上,并且用户无法更改)。
问题主要是关于是否最好使用每个主题的顶级类(正文或应用容器)导出单个CSS文件,仅替换每个主题更改的类< strong>或懒惰地在主css文件顶部加载新的css文件,仅覆盖将被覆盖的类。
我对第一种选择的最大担心是获取了一个巨大的CSS文件。当前文件已经大约为300kb(未缩小的CSS大约为11000行代码),每个主题的范围为200-500行,并且可能有10多个主题,该文件可以很容易地获得两倍或什至三倍的数量。
另一方面,延迟加载的CSS可能会导致用户下载2个较小的文件,但后果可能更糟。例如,懒惰加载的CSS文件需要在Angular CLI中使用单独的配置导出,并且名称必须是特定的,以便可以在登录时从Angular加载,这意味着如果某些更改并且没有版本控制,则缓存可能是个问题(例如。文件名中也无法显示theme-blah-2.17.css)。可能还有其他我目前无法想到的含义。