CodeIgniter + CSS
-
27-10-2019 - |
Question
Bonjour, j'apprends CodeIgniter avec Smarty. Mon fichier CSS est stocké dans
/App01/application/views/css/main.css
Pour lier mon CSS-je utiliser:
<link rel="stylesheet" type="text/css" href="http://localhost:88/APP1/application/views/css/layout.css" media="screen" />
CSS n'est pas appliquée sur ma page. Quand je ouvert URL CSS, je reçois un message:
Forbidden
You don't have permission to access /APP1/application/views/css/layout.css on this server.
S'il vous plaît, qu'est-ce que je fais mal? Je voudrais garder mon CSS en même temps que le point de vue parce que, à l'avenir, je voudrais savoir comment créer des thèmes multiples et je chose que le CSS doit être conservé dans le dossier du thème.
Puis-je remplacer chemin URL vers le fichier CSS avec une variable Smarty de sorte que lorsque je déplace ma demande, je ne pas besoin de changer de chemin URL CSS dans les modèles manuellement?
Merci d'avance! Vojtech
La solution
Tout dans le dossier /application
de CodeIgniter doit être considéré comme hors des limites du terrain. Pour la meilleure sécurité, vous devriez vraiment envisager de garder /application
au-dessus de votre dossier www
ou public_html
dans une structure telle que celle-ci:
– application
– controllers
– models
– views
– ...
– system
– core
– libraries
– ...
– public_html
– index.php
Cela rend votre code d'application plus sûre.
Je vous conseille de créer vos scripts côté client et CSS dans un dossier public. Par exemple public_html/css
et public_html/js
. Ou, si vous voulez aller dans le thème, le nom peut-être chaque fichier CSS comme le nom du thème, de sorte que vous auriez css/theme1.css
et css/theme2.css
.
Si votre site sera toujours le travail à partir de la racine d'un domaine, vous pouvez simplement utiliser:
<link rel="stylesheet" type="text/css" href="/css/layout.css" media="screen" />
Mais si vous sentez que vous allez être déplacer toutes sortes de choses, puis envisager de préparer l'emplacement du fichier dans votre contrôleur avant de l'envoyer à Smarty.
$this->load->helper('url');
$this->smarty->assign('css_file', base_url("css/theme1.css"));
qui retourne:
http://localhost/app1/css/theme.css
Ou quel que soit votre URL CodeIgniter est.
Autres conseils
Cela vous aidera à lien css CodeIgniter.
Le link_tag
est utilisé pour lier les ressources et vous pouvez utiliser la fonction helper
.
Par exemple aide html, aide url, aide e-mail, etc.
Dans votre contrôleur, vous devez créer une fonction quelque chose comme
<?php
class Home extends CI_Controller{
public function helper(){
$this->load->helper('html');
$this->load->view('index');
}
}
?>
Et votre index.php
dans le dossier view
utilisation mot-clé link_tag.
<html>
<head>
<title></title>
<?php echo link_tag('App01/application/views/css/main.css');?>
</head>
<body>
<?php
.......
?>
</body>
</html>
Essayez d'ajouter un lien symbolique vers vos serveurs documents dossier racine. (Www / public_html / htdocs)
cd (document root folder)
ln -s (/App01/application/views/css) .
De cette façon, vous pouvez accéder à votre dossier css et maintenir la structure actuelle.