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

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top