我的网站分为多个单独的模块。每个模块在 /protected/modules/my_module/assets/css
或 js
中都有自己特定的 css 或 js 文件。当我第一次使用使用我的资源的页面时,Yiis 资源管理器会创建文件夹。
不幸的是,如果我更改文件中的某些内容 - Yii 不会重新加载我的 css 或 js 文件。我必须手动删除 /projects/assets
文件夹。当你开发应用程序时,这真的很烦人。
有没有办法强制 Yii 在每次请求时重新加载资源?
最佳答案
在components/Controller.php
中添加以下内容(或调整现有的beforeAction
):
protected function beforeAction($action){
if(defined('YII_DEBUG') && YII_DEBUG){
Yii::app()->assetManager->forceCopy = true;
}
return parent::beforeAction($action);
}
在开始任何操作之前,应用程序将检查您是否处于 Debug模式,如果是,则将 Assets 管理器设置为在每次页面加载时强制重新复制所有 Assets 。
参见:http://www.yiiframework.com/doc/api/1.1/CAssetManager#forceCopy-detail
我还没有对此进行测试,但根据文档,我相信它应该可以正常工作。
注意:此代码在 beforeAction
中的放置位置只是其放置位置的一个示例。您只需在调用 publish()
之前将 forceCopy
属性设置为 true,并将其放在 beforeAction
中即可实现该目标。
关于php - 有没有办法强制 Yii 在每次请求时重新加载模块资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15614364/