Où est-il acceptable de placer des dossiers css et des dossiers de fichiers image? Je pensais à l'intérieur du dossier de vue? Cependant, le contrôleur redirige toujours le chemin vers l'URL de base, donc je dois spécifier le chemin dans le fichier .html où il se trouve, ce qui est redondant.
J'ai une configuration comme celle-ci:
J'ai ensuite une fonction d'assistance qui renvoie simplement le chemin complet vers celui-ci en fonction de ma configuration, quelque chose de similaire à:
application/helpers/utility_helper.php:
function asset_url(){
return base_url().'assets/';
}
Je vais généralement conserver les routines communes similaires à celles-ci dans le même fichier et les charger automatiquement avec la configuration autoload de codeigniter
Remarque: Aide d’URL de chargement automatique pour l’accès à
base_url()
.
application/config/autoload.php:
$autoload['helper'] = array('url','utility');
Vous aurez alors accès à asset_url()
dans tout votre code.
Non, l'intérieur du dossier des vues n'est pas bon.
Regardez: Vous devez avoir 3 dossiers de base sur votre projet:
system // Ceci est le framework CI il n'y a pas beaucoup de raisons de toucher à ces fichiers
application // c'est ici que va votre logique, les fichiers qui rendent l'application,
public // ce doit être votre documentroot
Pour des raisons de sécurité, il est préférable de conserver votre framework et l'application en dehors de votre racine de document (public_html, htdocs, public, www ... etc)
Dans votre dossier public, vous devriez mettre vos informations publiques, ce que les navigateurs peuvent voir, il est courant de trouver les dossiers: images, js, css; Votre structure sera donc:
|- system/
|- application/
|---- models/
|---- views/
|---- controllers/
|- public/
|---- images/
|---- js/
|---- css/
|---- index.php
|---- .htaccess
Voici comment je gère les actifs publics. Ici, j'utilise la méthode Bootstrap de Phalcon PHP .
|-.htaccess*
|-application/
|-public/
|-.htaccess**
|-index.php***
|-css/
|-js/
|-img/
|-font/
|-upload/
|-system
.htaccess*
Toutes les demandes relatives au projet seront réécrites dans le répertoire public/. ce qui en fait la racine du document. Cette étape garantit que le .__ interne. Les dossiers de projet restent cachés de l'affichage public et élimine ainsi .__ menaces de sécurité de ce genre. - Phalconphp Doc
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteRule ^$ public/ [L]
RewriteRule (.*) public/$1 [L]
</IfModule>
.htaccess**
Rules vérifiera si le fichier demandé existe et, le cas échéant, le ne doit pas être réécrit par le module de serveur Web. - Phalconphp Doc
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php/$1 [QSA,L]
</IfModule>
index.php***
Modifiez leapplication
path et lesystem
path en tant que,
$system_path = '../system';
$application_folder = '../application';
Maintenant, vous utilisez le dossierpublic
en tant quebase_url()."public/[YOUR ASSET FOLDER]"
J'espère que cela t'aides :)
Je mets généralement tous mes fichiers comme cela dans un dossier "assets" à la racine de l'application, puis je m'assure d'utiliser un Asset_Helper pour désigner ces fichiers à ma place. C'est ce que suggère CodeIgniter.
Personne ne dit que vous devez modifier le fichier .htacces et ajouter le répertoire dans la condition de réécriture . J'ai créé un répertoire "public" dans le répertoire racine à côté de "système", "application", "index.php ". et édité le fichier .htaccess comme ceci:
RewriteCond $1 !^(index\.php|public|robots\.txt)
Vous devez maintenant appeler <?php echo base_url()."/public/yourdirectory/yuorfile";?>
Vous pouvez ajouter un sous-répertoire dans le répertoire "public" à votre guise.
Peu importe l’endroit où vous placez le fichier CSS, vous pouvez simplement utiliser l’assistant "html" de CodeIgniter appelé link_tag (). Vous appliqueriez cette aide quelque chose comme ceci:
echo link_tag('folder/subfolder/stylesheet.css');
Il vous appartient de localiser le fichier CSS à l’endroit le plus approprié (à votre avis). Vous devrez soit charger automatiquement l'aide "html" ou le charger séparément pour l'utiliser.
Les gens continuent à suggérer l'utilisation de base_url () pour y parvenir, mais ce n'est pas vraiment la méthode "CodeIgniter" pour le faire (je pense que cette question comporte quelques doublons). Cela fonctionnera, mais l'une des raisons d'utiliser un framework est d'utiliser les fonctions prédéfinies qu'il contient.
Dans Codeigniter, il existe de nombreuses aides pour faire ce genre de chose.
ajoutez un dossier n’importe quel nom, par exemple public et ajoutez .htaccess fichier et écrivez autorisez de tout cela signifie que, dans ce dossier, tous vos fichiers et tous les dossiers ne donneront pas d’erreur Accès interdit! utilise-le comme ça
<link href="<?php echo base_url(); ?>application/public/css/style.css" rel="stylesheet" type="text/css" />
<script type="text/javascript" src="<?php echo base_url(); ?>application/public/js/javascript.js"></script>
J'utilise la dernière version de CodeIgniter 3.1.0 . La structure de ce dossier est la suivante:
C’est là que vous devez placer les fichiers images, css et js dans le dossier assets.
J'utilise la structure de dossiers suivante:
application
system
static
admin
js
css
images
public
js
css
images
uploads
original
thumbs
vous pouvez mettre le dossier css dans le dossier assest (vous le nommez n'importe quel nom) dans le répertoire de votre projet comme suit:
ci_app
application
vues
les atouts
css
style.css
... lorsque vous souhaitez charger ce fichier dans une page, vous pouvez utiliser la fonction base_url () de cette façon: <head>
<link rel='stylesheet' href='<?php echo base_url();?>assets/css/style.css'>
</head>
et vous êtes sûr d’ajouter base_url de votre projet dans le fichier config.php fichier comme ceci:
$config['base_url'] = 'http://localhost/ci_app';
(Je suis nouveau sur Codeigniter, donc je ne sais pas si c'est le meilleur conseil)
Je conserve des fichiers accessibles au public dans mon dossier public . Il est logique qu'ils soient présents et je ne souhaite pas utiliser Codeigniter pour quelque chose pour lequel je n'ai pas besoin de l'utiliser.
L'arborescence de répertoires ressemble à ceci:
Les seuls fichiers que je conserve dans/public/sont le fichier index.php de Codeigniter et mon fichier .htaccess:
RewriteEngine On
RewriteBase /
RewriteRule ^css/ - [L]
RewriteRule ^img/ - [L]
RewriteRule ^js/ - [L]
RewriteRule ^index.php(.*)$ - [L]
RewriteRule ^(.*)$ /index.php?/$1 [L]
Bonjour, notre structure ressemble à Application, système, guide utilisateur.
créez un actif de nom de dossier juste à côté de tous les dossiers, puis à l'intérieur de ce dossier, créez un dossier css, javascript et des images mettez tous vos fichiers css dans les dossiers
maintenant, allez à header.php et appelez le CSS comme ça.
<link rel="stylesheet" href="<?php echo base_url();?>assets/css/touchTouch.css">
<link rel="stylesheet" href="<?php echo base_url();?>assets/css/style.css">
<link rel="stylesheet" href="<?php echo base_url();?>assets/css/camera.css">