CostaRico/yii2-images 404 ошибка в дополнительном приложении advanced шаблона

86
01 июня 2021, 01:10

Доброго времени суток!

Я могу загружать и просматривать изображения в админ панели (приложение backend) без каких-либо проблем, а так же выводить изображения во "frontend" приложении yii2-advanced шаблона, но у меня есть дополнительное приложение frontend_2 и вот там изображение недоступно, ссылка возвращает 404 код.

Во всех 3х приложениях ссылки CostaRico/yii2-images возвращает одинаковые ссылки изображений. Домены же у всех 3х приложений различные.

Настройки CostaRico/yii2-images в common/config/main.php:

'modules' => [
    'yii2images' => [
    'class' => 'rico\yii2images\Module',
    //be sure, that permissions ok
    //if you cant avoid permission errors you have to create "images" folder in web root manually and set 777 permissions
    'imagesStorePath' => '@root/upload/store', //path to origin images
    'imagesCachePath' => '@root/upload/cache', //path to resized copies
    'graphicsLibrary' => 'GD', //but really its better to use 'Imagick'
    'placeHolderPath' => '@root/upload/store/no-image.png', // if you want to get placeholder when image not exists, string will be processed by Yii::getAlias
    'imageCompressionQuality' => 85, // Optional. Default value is 85.
    ]

Как вы могли заметить, я использую одну и ту же папку для хранения изображений для всех 3х приложений yii2=advancesd.

Код Costa-Rico/images в модели каждого приложения:

  public $gallery;
  public $gallery_url;
    public function behaviors()
    {
        return [
            'image' => [
                'class' => 'rico\yii2images\behaviors\ImageBehave',
            ]
        ];
    }

Для отображения картинки во frontend-2 приложении я использую следующий код:

$general_logo =  General::find()->where(['index' => 'logo_social'])->one();
if($general_logo) $image = $general_logo->getImage();
if($general_logo && $image) : ?>
   <meta property="og:image" content="<?= $image->getUrl(); ?>"/>
<?php endif; ?>

У кого-то есть идеи, в чем может быть ошибка? Спасибо.

Answer 1

Я решил проблему. Это была дурацкая ошибка в роутинге моего дополнительного приложения frontend_2, в файле frontend_2/config/main.php:

'urlManager' => [     
        'rules' => [
            [
               'pattern' => '<url:.+>',
               'route' => 'page/view',
            ], 
        ], 
    ]

Это правило отправляло все паттерны URL, не подходящие под предыдущие правила, на контроллер PageController, отвечающий за вывод отдельных текстовых страниц. PageController и отдавал в итоге 404 страницу. Таким образом, оно перехватывало урл до того, как его могло обработать расширение CostaRico/yii2-images и отправляло сценарий по ложному пути. Я закомментировал это правило, обновил страницу и увидел долгожданную картинку.

READ ALSO
str_replace заменяет строку раньше, чем надо

str_replace заменяет строку раньше, чем надо

В общем есть файл funtionsphp

98
Помогите объединить строки в массиве PHP 7.1

Помогите объединить строки в массиве PHP 7.1

Помогите разобраться с массивами PHP

146
Зачем HashSet и т.д. наследуют и AbstractSet и Set

Зачем HashSet и т.д. наследуют и AbstractSet и Set

Ведь класс AbstractSet имплементит SetТак зачем реализациям повторно его имплементить?

104
Как эффективно отладить java-приложение?

Как эффективно отладить java-приложение?

Допустим, у меня есть десктопное приложениеУ него есть свои кнопки, нажимая на которые выполняются различные методы

276