无法访问CakePHP中的图像和CSS文件

时间:2016-02-15 22:57:07

标签: cakephp cakephp-3.0

我在新的应用中使用我的旧网站设计代码。问题是我没有使用HTML帮助程序来加载图像。我正在使用HTML图片代码<img style="width:95px; margin-top:20px;"src="images/logo.png" />。它在此链接http://localhost/dashboard/dboard/中正常工作,但在此链接http://localhost/dashboard/dboard/pages/demo中无效。 Pages是控制器,demo是控制器中的一种方法。

我的PagesController看起来像这样: -

namespace App\Controller;

use Cake\Core\Configure;
use Cake\Network\Exception\NotFoundException;
use Cake\View\Exception\MissingTemplateException;
class PagesController extends AppController
{


    public function display()
    {
        $path = func_get_args();
    enter code here`enter code here`
        $count = count($path);
        if (!$count) {
            return $this->redirect('/');
        }
        $page = $subpage = null;

        if (!empty($path[0])) {
            $page = $path[0];
        }
        if (!empty($path[1])) {
            $subpage = $path[1];
        }
        $this->set(compact('page', 'subpage'));

        try {
            $this->render(implode('/', $path));
        } catch (MissingTemplateException $e) {
            if (Configure::read('debug')) {
                throw $e;
            }
            throw new NotFoundException();
        }
    }


     public function demo()
    {

    }
    public function contactus()
    {

    }
    public function downloads()
    {

    }
}

我的.htaccess文件如下所示: -

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

重要的是我已将所有图像放在此处:C:\ xampp \ htdocs \ dashboard \ dboard \ webroot。我正在使用CakePHP 3.0。

输出如下: -

with working css and images without working css and images

1 个答案:

答案 0 :(得分:1)

问题是apache正试图在路径<app_folder>/webroot/pages/dashboard/images中搜索图像,如果您在Web开发人员控制台中检查404错误(在Chrome中按F12),您可能会看到这些图像。

您可以通过以下两种方式解决:

  • 通过使用HtmlHelper :: img方法的调用替换img标签(由于你使用了内联样式(但这是你可以做的最好的修复),开头会有点难度)[你应该真的考虑为很好地将内联样式重构为外部样式表中的类];
  • 或者在src中添加基本网址,如下所示:

<img src='<?php echo Router::url('/') ?>/images/picture.png' >

这样最终的网址就像:

http://localhost/dashboard/dboard/images/picture.png

您的文件将被找到。