Хорошо, поэтому я использую 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);
}
}
Используйте абсолютные ссылки 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 without
index.phpthen substitute
адрес сайтаfor
base_url`.
Других решений пока нет …