提问者:小点点

CakePHP 3. x从URL访问图像


CakePHP版本:3.6系统:Windows10WampServer3.1。3(阿帕奇)

从url访问图像时遇到问题,即如果键入:http://www.n.co.nz/img/someimage.png我找不到404。我在CakePHP2.0中肯定能做到这一点,但在CakePHP3.6中却无法实现。

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

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

使用cakePHP方式时,图像加载良好。

<代码>

有什么想法吗?这是一辆汽车吗。访问或路由问题?我的访问权限如下所示

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中我的“App”数组的内容。php文件:

'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个答案

匿名用户

@Peshraw H.艾哈迈德

你确定你的文件名没有打字错误吗?

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

错误:找不到ImgController。错误:在以下文件中创建类ImgController:src\Controller\ImgController。php

这让我大吃一惊,我以为蛋糕没有将图像资源调用路由到webroot/img文件夹。我猜它是扫描那个文件夹,没有找到资源,然后传播,看看是否有一个imgController知道该做什么?

谢谢你的帮助!