Plugins 资产压缩插件不使用cakephp 2.x创建缓存文件

Plugins 资产压缩插件不使用cakephp 2.x创建缓存文件,plugins,cakephp-2.0,Plugins,Cakephp 2.0,我正在尝试使用资产压缩cakephp插件压缩js文件。。但它不会将文件创建到webroot/cache_js文件夹。。 怎么了? 你能解释一下吗? 这是我的asset_compress.ini代码 [General] cacheConfig = true [js] paths[] = WEBROOT/js/ cachePath = WEBROOT/cache_js/ [custom.js] files[] = jquery.js files[] = jquery-ui.js 在我的boot

我正在尝试使用资产压缩cakephp插件压缩js文件。。但它不会将文件创建到webroot/cache_js文件夹。。 怎么了? 你能解释一下吗? 这是我的asset_compress.ini代码

[General]
cacheConfig = true

[js]
paths[] = WEBROOT/js/
cachePath = WEBROOT/cache_js/

[custom.js]
files[] = jquery.js
files[] = jquery-ui.js
在我的bootstrap.php中,我加载了

CakePlugin::load('AssetCompress', array('bootstrap' => true));
调试级别设置为2。。调试级别为0时,也不会创建文件


谢谢。

您需要通过cake控制台或以下程序运行该命令:

生成和存储在asset_compress.ini配置中定义的静态资产,或通过AssetCompress帮助程序动态生成和存储静态资产。这是为了避免每次更改css或js文件时都必须手动运行控制台脚本

这就是一些人将其定义为“讨厌的”黑客行为,我称之为有效的解决方案。每次AppController beforeFilter()运行且调试级别大于0时,它都会通过php exec()方法简单地运行控制台脚本。因此,在调试级别应为0的生产环境中,不会运行exec()

将以下内容添加到/app/Controller/AppController.php beforeFilter()函数中

if(Configure::read('debug') > 0){
  exec(APP.'Console'.DS.'cake -app '.APP.' AssetCompress.asset_compress build -f');
}
这是假设您可以从控制台(linux)或cmd提示符(windows)运行普通AssetCompress