Codeigniter Маршрутизация Постоянные ссылки

Хорошо, поэтому я использую index.php, который находится внутри моей папки представлений в качестве основного вида. Я загружаю все остальные виды внутри него (как вы можете видеть из кода ниже).

Теперь, когда я создаю маршрут, например, о / (: any), он не загружает любой мой CSS или что-то подобное ..

Маршруты

$route['about']                     =  'about'; // works fine
$route['about/(:any)']              =  'about/get_specific_about/$1'; //problematic one

Теперь это мой index.php

<!DOCTYPE HTML>

<html>

<head>
<link rel="stylesheet" type="text/css" href="public/css/partials/header.css" />
<link rel="stylesheet" type="text/css" href="public/css/partials/footer.css" />
<link rel="stylesheet" type="text/css" href="public/css/<?php echo $meta['css']; ?>.css" />
</head>

<body>
<?php $this->load->view("partials/header");         ?>
<?php $this->load->view($meta['page']);             ?>
<?php $this->load->view("partials/footer");         ?>

</body></html>

Теперь, когда я использую маршрут с (: any), код будет загружать представление, но он не сможет найти, например, footer.css или header.css .. Если я использовал, например, ../public/css/header. CSS тогда это будет …

Код для контроллера О

<?php
defined('BASEPATH') OR exit('No direct script access allowed');

class About extends CI_Controller {

private $data = [
'meta'  => [
'page'          =>  "pages/about",
'css'           =>  "about",
'description'   =>  "test"],

];

public function index()
{

$this->load->helper('html');

$this->load->view('index', $this->data);
}

public function get_specific_about($user) {
$tmp_data                           =   [];
$tmp_data['meta']['css']            =   "profiles/".$user;
$tmp_data['meta']['page']           =   "profiles/".$user;
$tmp_data['meta']['description']    =   "test";
$tmp_data['meta']['extended']       =   true;

$this->load->view('index', $tmp_data);
}

}

0

Решение

Используйте абсолютные ссылки URL для href

<head>
<link rel="stylesheet" type="text/css"href="<?php echo base_url('public/css/partials/header.css'); ?>>" />
<link rel="stylesheet" type="text/css"href="<?php echo base_url('public/css/partials/footer.css'); ?>" />
<link rel="stylesheet" type="text/css"href="<?php echo base_url("public/css/{$meta['css']}.css"); ?>" />
</head>

Если вы не используете .htaccess' to rewrite URLs withoutindex.phpthen substituteадрес сайтаforbase_url`.

0

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector