Codeigniter 4 - настройка app.baseURL в файле .env и подкаталогах контроллера

У меня есть следующая структура проекта Codeigniter 4. У меня проблема с использованием base_url() и правильной настройкой app.baseURL в файле .env. Следующие два вопроса связаны с этой же проблемой:

Структура проекта

wamp-web-root
    ci<a href="<?php echo base_url()."/public/subfolder1/subfolder2/subfolder3/second_controller";?>">Link</a>"project
        public
        app
        assets

Структура приложения

public
system
app
    Controllers
        First_controller.php
        Subfolder1
            Subfolder2
                Subfolder3
                    Second_controller.php

ПЕРВЫЙ ВОПРОС – подкаталоги контроллера

Мой First_controller.php <a href="<?php echo base_url()."/public/first_controller";?>">Link</a>" работает нормально, но мой Second_controller.php <a href="<?php echo base_url()."/public/subfolder1/subfolder2/subfolder3/second_controller";?>">Link</a>" не работает.

ВТОРОЙ ВОПРОС: доступ к папке с ресурсами

Я использую следующий код для включения файлов css в свои представления:
<link href="<?php echo base_url();?>/assets/bootstrap-4.4.1/css/bootstrap.css" rel="stylesheet">

В моем файле .env: если я использую app.baseURL = 'http://localhost/ci_4_project/public/', отображается панель инструментов отладки Codeigniter, но файлы css не включаются в представления. Если я использую app.baseURL = 'http://localhost/ci_4_project/', то есть без добавления public, тогда файлы css включаются в представления, но панель инструментов отладки Codeigniter не отображается. По-видимому, это связано с тем, что папка с ресурсами находится не внутри общей папки, а на том же уровне, поэтому, когда я использую общедоступную в baseURL, активы не включаются. Мой вопрос: как определить app.baseURL и добавлять ли public в URL-адрес.


person Crunch    schedule 13.05.2020    source источник
comment
Почему вы хотите получить доступ к контроллерам так далеко от URL-адреса?   -  person TimBrownlaw    schedule 15.05.2020


Ответы (1)


Для вашего второго контроллера убедитесь, что вы правильно указали пространство имен:

 namespace App\Controllers\Subfolder1\Subfolder2\Subfolder3;
person Tien Dung Nguyen    schedule 20.05.2020