Как я могу загрузить файл CSS или JS в Codeigniter 4? - PullRequest
0 голосов
/ 15 октября 2019

Когда я пытаюсь загрузить файл css или javascript, он возвращает ошибку 404.

Я пытался использовать такие помощники, как link_tag HTML-хелпера, методы base_url URL-хелпера, он создаст маршрут кфайл, но не загружается.

Это мой контроллер:

class Pages extends Controller{

    public function viewPage($page)
    {
        if(!is_file(APPPATH."/views/pages/$page.php")){
            throw new \CodeIgniter\Exceptions\PageNotFoundException($page);
        }

        helper('html');

        $data['title'] = $page == 'noticeboard' ? "page1" : "page2";

        if($page != "index"){
            echo view('templates/header', $data);
        }

        echo view("pages/$page", $data);

        if($page != "index"){
            echo view("templates/footer", $data);
        }
    }

}

Мой маршрутизатор:

$routes->get("/", "Pages::viewPage/index");

Заголовок в HTML:

<?=link_tag('public/css/style.css')?>

Папка assets находится в самом корне htdocs (я использую сервер xampp apache).

И когда я пытаюсь загрузить CSS или JS, я получаю эту ошибку:

error message

Я совершенно новичок в CodeIgniter, поэтому любые советы будут полезны.

  • Структура каталогов:
htdocs
  -public
    --CSS
     ---style.css
    --JS
     ---app.js
  -app
    --controllers
      ---Page.php
    --views
      ---pages
        ----index.php

* Я изменил мои маршруты CSS, JS-файлов от ресурсов к общедоступным *

Ответы [ 3 ]

1 голос
/ 15 октября 2019

Поскольку приложение является родственной папкой общей папки,

И согласно codeIgniter 4.

все, что вы положили в общую папку, может быть доступно напрямую.

, поэтому оно должнобыть примерно таким, как показано ниже, чтобы применить CSS к представлению.

В папке представлений предположим, что есть файл как index.php

, тогда код должен быть таким, как показано ниже:

index.php

    <link rel="shortcut icon" type="image/png" href="/css/style.css"/>
0 голосов
/ 15 октября 2019

Вы добавили base_url в файл application / config / config.php ? Здесь: http://prntscr.com/pji8a5

Не указан URL сайта, который вы даете.

Вы дали http://localhost:8080/css.....

Но он должен http://localhost:8080/SITE_URL/css.....

Если вы добавите $config['base_url'] = "http://site_url.com/";, то вы можете дать прямое base_url('assets/css/style.css');

<link rel="stylesheet" href="<?php echo base_url('assets/css/style.css'); ?>">
<script src="<?php echo base_url('assets/js/js.css'); ?>"></script>

Спасибо

0 голосов
/ 15 октября 2019

Попробуйте это

$config['base_url'] = "http://ur_site_url.com/";

Чем, на ваш взгляд

<?php echo base_url('assets/css/style.css'); ?>
...