7

私はCakePHPプラグイン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

シェル スクリプトを使用してファイルを生成する必要があります。ファイルは自動的に生成されません。

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

于 2012-11-03T00:02:30.893 に答える
2

このGithub の wiki ページをよく理解している場合は、MemCache を利用するために変更cacheConfig = falseする必要があります。cacheConfig = true

于 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) またはコマンド プロンプト (Windows) から通常の AssetCompress を実行できることを前提としています。

于 2013-10-23T11:04:42.097 に答える