php – 在Yii中使用资产的正确方法是什么?

我注意到,Yii在资产目录中创建了一些奇怪的目录(8523d23或10s89b92这样的名字),这甚至在运行时发生.例如,我的一个表中有一个记录超过10条,分页踢入,我在资产子目录pager.css中找到了一个新的文件.

当我将网站从测试移动到生产时,应该复制所有这些,还是创建一个空的“资产”目录,并在运行时填写?

如果我想添加一些新的jQuery插件,我该怎么办?

例如,我希望添加jquery.charcounter.js,我将其复制到资产或yii / framework / web / js / source?如果我做后者,我如何得到这个.js文件包含在HTML页面输出

资产应该是可写目录. Yii负责资产管理.

通过调用Yii :: app() – > assetManager-> publish()可以将一些样式表,图像,脚本甚至整个目录放入web-visible文件夹中.

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

在部署过程中,此文件夹应为空,但并不重要.

添加插件不应该通过框架文件夹完成.您可以将它们放置在组件目录中,并在需要时发布运行时,或者放入任何其他方便的可见目录(如图像或CSS).

更新

要嵌入jquery.charcounter.js,将其放在组件目录中,然后调用

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

关于奇怪的文件名称,我坚信它们是独特的哈希(或部分),所以如果应用程序使用多个扩展名,它们可以区分开来.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...