Когда я загружаю представление с моего контроллера, некоторые функции html теряются.

Итак, когда я загружаю представление следующим образом:

Адресная строка гласит:

http://localhost/Mywebsite/private_area

представление вызывается из функции index контроллера private_area и работает нормально. Однако, когда я вызываю страницу, используя профиль функции, такой, что адресная строка читает:

http://localhost/Mywebsite/private_area/profile

представление теряет определенные функциональные возможности, такие как кнопки-переключатели, которые не работают, и src= также не работает. Код для функции индекса и функции профиля идентичен.

Очень запутался, есть идеи?

Вот некоторый связанный код:

Перенаправление входа в контроллер с использованием:

redirect ('private_area');

Это вызывает маршрут

$route['private_area'] = 'private_area';

Это вызывает контроллер Private Area/Index, который имеет следующий код:

    $this->load->model("Profiles_model");  
    $profiledata["fetch_profiledata"] = $this->Profiles_model->fetch_profiledata();    
    $this->load->view('templates/header_pa');
    $this->load->view('pages/page-profile', $profiledata);
    $this->load->view('templates/footer');

Это отлично работает и отлично отображает представление профиля страницы.

Но если я перейду к другому представлению, а затем вернусь к представлению профиля страницы, используя

    <a href="<?php echo base_url(); ?>private_area/profile" role="button">Profile</a>

Какой контроллер вызовов Private_area и функция Profile

    function profile() 
        {
        $this->load->model("Profiles_model");  
        $profiledata["fetch_profiledata"] = $this->Profiles_model->fetch_profiledata();  
        $this->load->view('templates/header_pa');
        $this->load->view('pages/page-profile', $profiledata);
        $this->load->view('templates/footer');
        }

Основной вид загружается, но теги src не работают, как и кнопки переключения.


person Kevin K    schedule 25.06.2020    source источник


Ответы (3)


Если вы добавляете <?=base_url();?> к своему изображению и любому другому пути, все будет хорошо.

Если вы добавляете переменные в свою функцию, у вас снова возникнет та же проблема.

Например, ваше изображение должно выглядеть так:

<img src="<?=base_ur();?>assets/img/demo/avatar1.jpg">

Надеюсь это поможет.

person renegade999    schedule 26.06.2020

Я бы сказал, что вы используете относительные пути для своих файлов CSS и/или Javascript без base_url() впереди. Вы получаете какие-либо 404 в инструментах разработчика? Обычно они говорят вам, в чем проблема.

Правильный способ встраивания JS и CSS:

<link rel="stylesheet" href="<?=base_url();?>/assets/css/bootstrap.min.css">
<script src="<?=base_url();?>assets/js/bootstrap.min.js"></script>
person renegade999    schedule 25.06.2020
comment
Спасибо @renegade999, но это не так. Вот JS и CSS почти идентичны тому, что вы предложили. <link rel="stylesheet" type="text/css" href="<?php echo base_url();?>assets/css/plugins.min.css"> <link rel="stylesheet" type="text/css" href="<?php echo base_url();?>assets/css/style.light-blue-500.min.css"> <script src="<?php echo base_url();?>assets/js/bootstrap.min.js"></script> - person Kevin K; 25.06.2020
comment
Вы проверили, правильно ли какой-либо из встроенных файлов JS загружается с помощью инструментов разработчика. Это просто очень похоже на то, что файл загружен неправильно. - person renegade999; 25.06.2020

AnPS: Итак, я смог решить хотя бы часть проблемы следующим образом:

Код нарушения был:

<img src="assets/img/demo/avatar1.jpg"> 

Это вызовет следующую ошибку:

GET http://localhost/Mywebsite/private_area/assets/img/demo/avatar1.jpg 404 (Not Found) 

Поскольку он читал Controller - Private_area как папку, поэтому я просто добавил ../ в код нарушения

<img src="../assets/img/demo/avatar1.jpg"> 

Я исправил кнопки переключения, используя аналогичный подход, добавив ../ в скрипт следующим образом:

<script src="../assets/js/plugins.min.js"></script>
    <script src="../assets/js/app.min.js"></script>

Это сработало, но правильно ли я сделал? Или это просто плохой обходной путь?

person Kevin K    schedule 25.06.2020