Yii包含CSS和JS文件。

3

我已经花了很长时间来研究这个问题,但我仍然感到困惑 -

你能帮忙解释一下以下两者之间的区别吗:

Yii::app()->clientScript->registerCssFile(Yii::app()->baseUrl.'/css/some-file.css');

<link rel="stylesheet" type="text/css" href="<?php echo Yii::app()->request->baseUrl; ?>/css/some-file.css 

这是一个性能问题,还是仅仅是不同的语法?谢谢,丹尼。
2个回答

5

registerCssFile总是将文件注册在<head>标签之间,即使您在视图中的某个地方调用它。 如果您关心HTML验证(在<body>中的<link>是无效的),但仍然想在视图中包含CSS文件,则这很有帮助。

registerCssFile实际上有助于性能,因为只有在需要时才注册CSS。


4
值得注意的是,registerCssFile的优点在于,如果您在多个地方加载CSS(例如在视图中、在扩展中等),它将防止重复加载。 - ernie
最好使用扩展的ClientScript组件,像https://github.com/muayyad-alsadi/yii-EClientScript一样,将CSS和JS合并和压缩。 - Muayyad Alsadi

0

你现在使用的方式是相同的。要验证这一点,请检查页面源代码(在您的浏览器中)并检查 Yii::app()->clientScript->registerCssFile 创建的语句。

然而,clientScript 让你控制脚本在 HTML 文件中的位置。请查看:http://www.yiiframework.com/doc/api/1.1/CClientScript#registerScriptFile-detail 并查找 POS_HEAD、POS_BEGIN、POS_END。

更重要的是,在 MVC 哲学中,你希望将与 HTML 输出相关的所有内容放在视图文件中。Yii::app()->clientScript 允许你从视图文件中添加 CSS 和 JS 文件。这就是你想要的。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接