CakePHP 3.x从URL访问图像

时间:2018-07-11 02:43:56

标签: php html5 mod-rewrite cakephp cakephp-3.0

CakePHP版本:3.6 系统:Windows 10 WampServer 3.1.3(Apache)

我无法从url访问图像,即如果键入: http://www.n.co.nz/img/someimage.png我找不到404。我肯定可以在CakePHP 2.0中做到这一点,而不能在CakePHP 3.6中工作。

图像“ someimage.png”存储在project / webroot / img / someimage.png

我可以直接通过url访问CSS文件。 http://n.co.nz/css/template_pages.css

使用cakePHP方式(即

),图像加载良好

<?= $this->Html->image('someimage.png'); ?>

有什么想法吗?这是.htaccess还是路由问题?我的.htaccess如下

SourceFiles / .htaccess

<IfModule mod_rewrite.c>
   RewriteEngine on
   RewriteRule    ^$    webroot/    [L]
   RewriteRule    (.*) webroot/$1    [L]
</IfModule>

Webroot / .htaccess

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

更新

作为对Peshraw的响应,这是config / app.php文件中“ App”数组的内容:

'App' => [
    'namespace' => 'App',
    'encoding' => env('APP_ENCODING', 'UTF-8'),
    'defaultLocale' => env('APP_DEFAULT_LOCALE', 'en_US'),
    'defaultTimezone' => env('APP_DEFAULT_TIMEZONE', 'UTC'),
    'base' => false,
    'dir' => 'src',
    'webroot' => 'webroot',
    'wwwRoot' => WWW_ROOT,
    //'baseUrl' => env('SCRIPT_NAME'),
    'fullBaseUrl' => false,
    'imageBaseUrl' => 'img/',
    'cssBaseUrl' => 'css/',
    'jsBaseUrl' => 'js/',
    'paths' => [
        'plugins' => [ROOT . DS . 'plugins' . DS],
        'templates' => [APP . 'Template' . DS],
        'locales' => [APP . 'Locale' . DS],
    ], 
];

作为回应,顶部戴夫

蛋糕插入图像时,蛋糕生成的HTML为:

<img src="/img/nad_home_logo.png" id="nad_top_logo" alt="">

1 个答案:

答案 0 :(得分:0)

@Peshraw H. Ahmed

  

您确定文件名中没有错字吗?

不,...我为图像添加了png而不是jpg。当尝试使用URL直接加载图像时,CakePHP告诉我以下内容

  

错误:找不到ImgController。错误:创建课程   文件中的以下ImgController:src \ Controller \ ImgController.php

这让我失望,我以为蛋糕没有将图像资源调用路由到webroot / img文件夹。我想这是在扫描那个文件夹,没有找到资源,然后传来看看是否有一个imgController知道该怎么做?

感谢您的帮助!