シェアする

  • このエントリーをはてなブックマークに追加

[CakePHP2.3系]webroot/imgやcss、jsなどの変更

CakePHP2.3系の話。

画像を格納する/webroot/imgのパスを変更したい場合、CakePHP2.3まではIMAGES定数やIMAGES_URL定数を使うのですが、bootstrap.phpでdefineしようとしてもすでに定義済みで定義できなかったのでメモ。

たしか1.3系ではbootstrap.phpで効いた気がするんですけど、気のせいかな?

/lib/Cake/bootstrap.phpで定義されちゃうので/webroot/index.phpで左記のファイルをincludeする前に定義しちゃいましょう。

// imagesディレクトリ指定
define('IMAGES_URL', 'images'.DS);
define('IMAGES', WWW_ROOT.IMAGES_URL);

// ↓がCake/bootstrap.phpのinclude箇所
if (!defined('CAKE_CORE_INCLUDE_PATH')) {
	if (function_exists('ini_set')) {
		ini_set('include_path', ROOT . DS . 'lib' . PATH_SEPARATOR . ini_get('include_path'));
	}
	if (!include ('Cake' . DS . 'bootstrap.php')) {
		$failed = true;
	}
} else {
	if (!include (CAKE_CORE_INCLUDE_PATH . DS . 'Cake' . DS . 'bootstrap.php')) {
		$failed = true;
	}
}

cssやjsのディレクトリも同様です。

ちなみにCakePHP2.4系からは、IMAGES_URL定数の代わりにApp.imageBaseUrlを使うみたい。
Configure::write('App.imageBaseUrl', 'path');みたいにするのかな?

シェアする

  • このエントリーをはてなブックマークに追加

フォローする