13

我注意到 Yii 在 assets 目录中创建了一组奇怪的目录(名称如 8523d23 或 10s89b92),这甚至发生在运行时。例如,我的一张表有超过 10 条记录,分页开始了,我在 assets 子目录中获得了一个名为 pager.css 的新文件。

当我将我的站点从测试转移到生产时,我应该复制所有这些,还是只创建一个空的“资产”目录,它会在运行时填充?

例如,如果我想添加一些新的 jQuery 插件,我应该如何进行?

例如,我想添加 jquery.charcounter.js,我是复制到 assets 还是复制到yii/framework/web/js/source? 如果我做后者,我如何让这个 .js 文件包含在 HTML 页面输出中?

4

2 回答 2

23

assets应该是一个可写的目录。Yii 负责资产管理。

通过调用Yii::app()->assetManager->publish()一些样式表、图像、脚本,甚至整个目录都可以放入一个网络可见的文件夹中。

pager.css和其他不熟悉的文件由小部件(CLinkPager例如)和其他组件(例如CClientScript在需要时发布 jQuery)生成。

在部署期间,这个文件夹应该是空的,但这并不重要。

永远不要通过框架文件夹添加插件。您可以将它们放置在componentsdir 中并在必要时将其发布到运行时,或者放置到任何其他方便的可见目录(如 asimagescss)中。

更新

嵌入jquery.charcounter.js,把它放在components目录中,然后调用

Yii::app()->clientScript->registerScriptFile(
    Yii::app()->assetManager->publish(
        Yii::getPathOfAlias('application.components').'/jquery.charcounter.js'
    ),
    CClientScript::POS_END
);

关于奇怪的文件夹名称,我坚信它们是唯一的哈希(或一部分),因此如果应用程序使用多个扩展名,它们可以被区分。

于 2009-11-05T17:26:30.227 回答
7

这将解决查询,因为这提供了资产文件夹的详细说明:

http://www.yiiframework.com/wiki/148/understanding-assets/

于 2011-02-20T19:01:44.850 回答