Entonces, cuando cargo una vista como esta:

La barra de direcciones dice:

"http: // localhost / Mywebsite / private_area"

La vista se llama desde la función de índice del controlador "private_area", y funciona bien. Sin embargo, cuando llamo a la página usando una función "perfil" de modo que la barra de direcciones dice:

"http: // localhost / Mywebsite / private_area / profile"

La vista pierde ciertas funciones, como que los botones de alternar no funcionan y src = tampoco funciona. El código para la función de índice y la función de perfil es idéntico.

Muy confundida, alguna idea?

Aquí hay un código relacionado:

El controlador "Login" Redirige usando:

redirect ('private_area');

Esto llama ruta

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

Esto llama al controlador Área privada / índice que tiene el siguiente código:

    $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');

Esto funciona bien y muestra la vista de perfil de página perfectamente.

Pero si voy a otra vista y luego vuelvo a la vista de perfil de página usando

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

¿Qué controlador de llamadas "Private_area" y la función "Perfil"

    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');
        }

La vista principal se carga, pero las etiquetas src no funcionan, ni los botones de alternar.

0
Kevin K 25 jun. 2020 a las 07:51

3 respuestas

La mejor respuesta

Si está agregando <?=base_url();?> a su imagen, y cualquier otra ruta, estará bien.

En caso de que esté agregando variables a su función, tendrá el mismo problema nuevamente.

Por ejemplo, su imagen debería verse así:

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

Espero que esto ayude.

0
renegade999 26 jun. 2020 a las 06:26

AnPS: Así que pude resolver al menos parte del problema de esta manera:

El código ofensivo fue:

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

Generaría el siguiente error:

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

Como estaba leyendo el Controlador - "Private_area" como una carpeta, entonces agregué ../ al código ofensivo

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

Arreglé los botones de alternancia usando un enfoque similar agregando ../ al script de esta manera:

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

Esto funcionó, pero ¿lo hice bien? ¿O es solo una mala "solución"?

0
Kevin K 25 jun. 2020 a las 22:14

Yo diría que está utilizando rutas relativas para sus archivos CSS y / o Javascript sin la base_url () al frente. ¿Estás obteniendo 404 en las herramientas de desarrollador? Por lo general, le dicen dónde está el problema.

Una forma correcta de incrustar JS y CSS sería:

<link rel="stylesheet" href="<?=base_url();?>/assets/css/bootstrap.min.css">
<script src="<?=base_url();?>assets/js/bootstrap.min.js"></script>
0
renegade999 25 jun. 2020 a las 07:05