web-dev-qa-db-fra.com

CodeIgniter - Chargement de CSS

Je développe une API personnalisée pour une solution Web et j'utilise le modèle de conception MVC. J'ai un dossier de modules afin de pouvoir permuter les modules d'entrée et de sortie et aussi travailler sur les sections sans perturber le fonctionnement du code testé. Mon seul problème maintenant est que je veux charger CSS n'importe où et que mon application importe correctement le fichier css dans la balise head. Je sais que CodeIgniter fait cela mais je ne sais pas comment.

Avec PHP, comment puis-je charger un fichier CSS n'importe où, puis que le code importe correctement le css dans les balises head comme le fait CodeIgniter?

Merci d'avance.

19
Torez

Vous pouvez charger plusieurs vues à la fois ou à l'intérieur d'autres vues.

Donc, dans ce cas, je vous recommande de créer une vue en-tête où vous chargez tous les fichiers css et js

exemple:

<html>
<head>
    <meta http-equiv="content-type" content="text/html;charset=UTF-8">
    <link rel="stylesheet" href="<?php echo base_url();?>css/moorainbow.css" type="text/css" media="screen"/>
    </head>
    <body>

Et appelez ça comme:

$this->load->view('header');
$this->load->view('view1');
$this->load->view('view2');

De cette façon, vous pouvez contrôler les fichiers (css + js + etc) que vous chargez dans un seul fichier.

Regrads,
Pedro 
@ pcamacho

29
Pedro

Votre question me semble un peu obscure, mais je ferai de mon mieux pour vous aider. Vous vous demandez simplement comment inclure un fichier CSS dans vos vues? Si oui, utilisez simplement les éléments suivants:

<style> @import url('/css/styles.css'); </style>

Si votre dossier CSS est à la racine de votre projet CodeIgniter, vous pouvez faire quelque chose comme ceci en utilisant la fonction base_url () de CodeIgniter:

<style> @import url('<?=base_url()?>/css/styles.css'); </style>

Cela garantira que vos pages resteront portables et disposeront de l'URL absolue correcte. J'espère que cela t'aides! Sinon, essayez d'être un peu plus précis dans votre question

7
Colin Brock

Utilisez un absolu…

<link rel="stylesheet" type="text/css" href="http://example.com/style/css">

… Ou l'URI relatif de la racine.

<link rel="stylesheet" type="text/css" href="/style/css">
3
Quentin

assurez-vous également que vous ne redirigez pas l'URL dans le fichier .htaccess, autorisez le css

Fichier .htaccess

RewriteEngine on
RewriteCond $1 !^(index\.php|images|css|robots\.txt)
RewriteRule ^(.*)$ index.php/$1 [L]

Aussi voici ce que j'ai ajouté dans mon modèle d'en-tête

$this->load->helper("url");
echo link_tag(base_url().'css/styles.css');
3
mc.

vous pouvez faire la même chose que moi, dans votre fichier de vue, procédez comme suit

<link rel="stylesheet" href="{pathToApp}/styles/main.css" type="text/css" media="screen" />

(après avoir créé un dossier de styles dans le répertoire de l'application) puis dans votre contrôleur, transmettez ceci:

$path = '../system/application';

dans un tableau et envoyez le tableau en tant que second paramètre. Si vous utilisez load-> view pour charger votre vue, vous devez changer {pathToApp} en $ array ['path']] (changez $ array en votre nom précédent). Si vous utilisez le système de modèles intégré de CodeIgniter, vous êtes tous prêts. Au moins, de cette façon, vous n'aurez pas besoin de modifier l'URL absolue lors de la migration de votre site.

2
Marc Towler

Une chose importante que j’ai réalisée est que RewriteCond dans le fichier .htaccess fait référence à FOLDERS et non à TYPES DE FICHIERS. En d'autres termes, mettre |css| dans cet emplacement ne fait pas de prise si vos feuilles de style ne sont pas dans le dossier/css /. Listez les dossiers actuels, donc |styles| ou |scripts| ou autre chose. ALORS et alors seulement, en utilisant "<?=base_url()?>styles/style.css" (par exemple), apparaîtra. Cela m'a pris environ deux jours pour comprendre, alors j'espère que cela permettra à quelqu'un d'économiser des cheveux et une hypertension artérielle.

1
Dane Calderon

Tout d'abord, vous créez une fonction de contrôleur et chargez l'assistant HTML pour l'appel css dans Codeigniter.

exemple de code

<?php 
class Home extends CI_Controller{

    public function helper(){
        $this->load->helper('html');    
        $this->load->helper('url'); 
        $this->load->view('index');

    }
}
?>

Ensuite, appelez le fichier css en utilisant la clé link_tag Word. Quelque chose comme ça dans le fichier index.php dans 

<html>
<head>
    <title></title>
     <?php echo link_tag('css/moorainbow.css');?>
</head>
<body>
<?php 
.....
?>
</body>
</html>

Ici, le css/ est le dossier contenant le fichier moorainbow.css.

0
NIMISHAN