cakephp图像帮助程序在本地工作但不在线

时间:2015-06-07 06:07:13

标签: php html image cakephp

我在使用cakephp的图像助手显示图像时遇到问题。图像的URL存储在数据库中:companiesLogos / defaultLogo.jpg以及我用来显示该图像的代码是<?php echo $this->Html->image($user['User']['img_path'], array('class' => 'img-circle', 'style' => 'width:50px')); ?>

它在本地版本的浏览器中呈现为<img src="/websites/Gimble/img/companiesLogos/defaultLogo.jpg" class="img-circle" style="width:50px" alt="">,其中网址为http://localhost:8080/websites/websitename/DashBoard

它在浏览器中呈现为<img src="/img/companiesLogos/defaultLogo.jpg" class="img-circle" style="width:50px" alt="">的在线版本,其中网址为http://app.websitename.com.au/DashBoard

以下是两个环境的图像,本地首先是在线版本。在线版本坐在Linux服务器上,而本地版本在Windows计算机上。

我错过了什么?

local version online version

2 个答案:

答案 0 :(得分:0)

最有可能的问题是在应用程序的根文件夹中(/ img不指向cakephp根目录,而是指向托管根目录)。在每个.htaccess文件(cakephp,app和webroot文件夹的根目录)中,在RewriteEngine下面添加以下行:

@RequestMapping(value = "/files2/{file_name:.+}", method = RequestMethod.GET, produces = {MediaType.IMAGE_JPEG_VALUE})

答案 1 :(得分:0)

您需要使用定义文档根目录来查找源代码。我想这里有很好的解释: RewriteBase如何在.htaccess

中工作 用我自己的话说,在阅读完文档和试验之后:

生产安装是一种更灵活的设置CakePHP的方法。使用这种方法可以实现整体 域作为单个CakePHP应用程序。此示例将帮助您在任何位置安装CakePHP 您的文件系统并在http://www.example.com处可用。请注意,此安装可能需要 在Apache Web服务器上更改DocumentRoot的权限。 将CakePHP存档的内容解压缩到您选择的目录中。出于此目的 例如,我们假设您选择将CakePHP安装到/ cake_install中。您的生产设置将如下所示 这在文件系统上:

/cake_install/
    app/
    webroot/ (this directory is set as the ‘‘DocumentRoot‘‘
    directive)
    lib/
    plugins/
    vendors/
    .htaccess
    index.php
    README

使用Apache的开发人员应将域的DocumentRoot指令设置为:

DocumentRoot /cake_install/app/webroot

如果您的Web服务器配置正确,您现在应该可以在以下位置找到您的CakePHP应用程序 http://www.example.com