我已经阅读了很多文档,但未能解决问题:
存储在$_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 ,它会被渲染,但我在 lib / Cake / bootstrap.php 中更改了IMAGES中的文件夹常量! !!
在文档中我看到:
我猜这就是问题所在。常量IMAGES_URL,JS_URL,CSS_URL已被弃用 替换为配置变量App.imageBaseUrl,App.jsBaseUrl, App.cssBaseUrl分别 常量IMAGES,JS,CSS已被弃用。
请告诉我如何更改图像文件夹
答案 0 :(得分:1)
根据您的说明,我认为IMAGES_URL
应为media/
,而不仅仅是/
。
或者,你可以在你的.htaccess
(在项目根目录中)添加一个RewriteRule来重写媒体文件夹中的所有内容(假设你有一个启用了Rewrite模块的Apache Web服务器):
RewriteRule ^app/webroot/img/(.*) /media/$1
或者您可以创建一个将img /文件夹链接到媒体文件夹的符号链接(假设您已经在Linux主机上,并且您对服务器有ssh / shell访问权限):
cd app/webroot
rm -rf img/
ln -s ../../media img