Можно ли изменить папку изображения в cakephp 2.4

Я прочитал много документов, но не смог решить проблему: изображения в моем существующем проекте, хранящиеся в $_SERVER['DOCUMENT_ROOT'].'/media/', я хочу, но не могу изменить папку изображений по умолчанию в cakephp 2.4 с $_SERVER['DOCUMENT_ROOT'].'/app/webroot/img/' на любую, которую я хочу.

lib/Cake/bootstrap.php содержит константы:

/**
 * Path to the public images directory.
 */
if (!defined('IMAGES')) {
    define('IMAGES', WWW_ROOT . 'img' . DS);
}

/**
 * Web path to the public images directory.
 */
if (!defined('IMAGES_URL')) {
    define('IMAGES_URL', 'img/');
}

и

Configure::write('App.imageBaseUrl', IMAGES_URL);

Я попытался изменить:

IMAGES to $_SERVER['DOCUMENT_ROOT'].'/media/'

IMAGES_URL to /

И это вообще не работает. Все файлы изображений по-прежнему указывают на $_SERVER['DOCUMENT_ROOT'].'/app/webroot/img/'. Я вижу это, когда пытаюсь отобразить изображение в поле зрения:

echo $this->Html->image('/img/ride_scheme/chema.jpg', array( 'width' => 300 ));

Если бы я создал in app/webroot/img/ride_scheme файл изображения chema.jpg, он отобразился, но я изменил папку в константе IMAGES в lib/Cake/bootstrap.php !!!

В документации вижу:

Константы IMAGES_URL, JS_URL, CSS_URL устарели и заменены переменными конфигурации App.imageBaseUrl, App.jsBaseUrl, App.cssBaseUrl соответственно.
Константы IMAGES, JS, CSS устарели.

Я предполагаю, что это проблема.

Пожалуйста, покажите мне, как изменить папку изображения


person user2455668    schedule 24.03.2014    source источник


Ответы (1)


Согласно вашему описанию, я считаю, что IMAGES_URL должно быть media/, а не только /.

В качестве альтернативы вы можете добавить RewriteRule в свой .htaccess (в корне проекта), чтобы перезаписать все в папку мультимедиа (при условии, что у вас есть веб-сервер Apache с включенным модулем Rewrite):

RewriteRule ^app/webroot/img/(.*) /media/$1

Или вы можете создать символическую ссылку, которая связывает папку img/ с вашей медиа-папкой (при условии, что вы находитесь на хостинге Linux и у вас есть доступ к вашему серверу по ssh/shell):

cd app/webroot
rm -rf img/
ln -s ../../media img
person Oldskool    schedule 24.03.2014