Aurelia的require元素包括内联外部资源?

时间:2016-02-17 11:36:08

标签: javascript aurelia

在完成开始教程时,有一个问题需要"引导程序库(CSS):

<require from="bootstrap/css/bootstrap.css"></require>
<require from="font-awesome/css/font-awesome.css"></require>

当我查看Chrome的检查员时,我发现这些CSS文件不是源代码。相反,它似乎在页面中全部内联。

这是真的,还是调试器的东西?如果它 - 赢了,这会影响浏览器中的缓存(CSS需要重新下载)?

1 个答案:

答案 0 :(得分:6)

当通过<require>标签导入CSS资源时,ES6模块加载程序(由SystemJS填充)用于下载CSS。这是一个标准的XMLHttpRequest,请求将由浏览器的标准缓存机制缓存。下载CSS(文本)后,Aurelia将其填充到<style>元素中,并以适当的方式将<style>元素附加到DOM,具体取决于是否使用了scoped属性以及是否元素在阴影DOM中。

相关代码为here

这种方法的好处是CSS导入在相对路径,捆绑和缓存方面与其他类型的资源(如HTML和JS)具有一致的行为。它还使Aurelia能够处理scoped-css和shadow DOM场景。