7

我正在使用CakePHP Plugin AssetCompress (v 0.7),它工作得很好,除了它不缓存目录中的任何文件。这是我的asset_compress.ini设置:

[General]
writeCache = true
cacheConfig = false
alwaysEnableController = true
debug = false

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

[speedtest.min.js]
files[] = speedtest/speedtest.js

补充说明:

  • 我在 core.php 中将调试设置为“0”
  • cache_js 文件夹是可写的 (777)
  • 我也使用 MemCache 作为缓存引擎(不确定这是否会导致问题)

有人在 Asset Compress 插件上遇到过同样的问题吗?


更新:这是我用于 CSS/Less 部分的,效果很好:https ://github.com/Hyra/less

4

3 回答 3

2

您必须使用 shell 脚本生成文件。这些文件不会自动生成。

https://github.com/markstory/asset_compress/wiki/Shell

于 2012-11-03T00:02:30.893 回答
2

如果我很好理解这个Github 的 wiki 页面,您应该更改cacheConfig = falsecacheConfig = true以利用 MemCache。

于 2012-05-09T07:35:38.777 回答
1

生成和存储在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

于 2013-10-23T11:04:42.097 回答