Où est-ce que je mets des fichiers image, css, js, etc. dans Codeigniter?

Où est-il acceptable de mettre 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. Je dois donc spécifier le chemin dans le fichier .html où il se trouve, ce qui est redondant.

    J’ai une configuration comme celle-ci:

    • application
    • système
    • les atouts
      • js
      • imgs
      • css

    J’ai alors une fonction d’assistance qui renvoie simplement le chemin complet à ceci 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 garder les routines communes similaires à ceci dans le même fichier et le charger automatiquement avec la configuration de chargement automatique de codeigniter.

    Remarque: autoload URL helper pour access base_url() .

    application / config / autoload.php:

     $autoload['helper'] = array('url','utility'); 

    Vous aurez alors access à asset_url() dans tout votre code.

    Non, l’intérieur du dossier de vues n’est pas bon.

    Regardez: Vous devez avoir 3 dossiers de base sur votre projet:

    system // Ceci est le cadre CI il n’y a pas beaucoup de raisons de toucher ces fichiers

    application // c’est là que va votre logique, les fichiers qui font l’application ,

    public // ceci 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 documentroot (public_html, htdocs, public, www … etc)

    À l’intérieur de votre dossier public, vous devriez mettre vos informations publiques, ce que les navigateurs peuvent voir, c’est commun de trouver les dossiers: images, js, css; donc votre structure sera:

     |- system/ |- application/ |---- models/ |---- views/ |---- controllers/ |- public/ |---- images/ |---- js/ |---- css/ |---- index.php |---- .htaccess 

    C’est comme ça que je gère les biens publics. Ici, j’utilise la méthode Bootstrap de Phalcon PHP .

    Structure des dossiers

     |-.htaccess* |-application/ |-public/ |-.htaccess** |-index.php*** |-css/ |-js/ |-img/ |-font/ |-upload/ |-system 

    Fichiers à modifier

    1. .htaccess*

      Toutes les demandes au projet seront réécrites dans le répertoire public / , ce qui en fera la racine du document. Cette étape garantit que les dossiers de projets internes restnt cachés au public et élimine ainsi les menaces de sécurité de ce type. Phalconphp Doc

        RewriteEngine on RewriteRule ^$ public/ [L] RewriteRule (.*) public/$1 [L]  
    2. .htaccess**

      Les règles vérifient si le fichier demandé existe et, si tel est le cas, il n’est pas nécessaire de le réécrire par le module du serveur Web. Phalconphp Doc

        RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php/$1 [QSA,L]  
    3. index.php***

      Modifiez le chemin d’ application et le chemin du system tant que,

       $system_path = '../system'; $application_folder = '../application'; 

    Vous utilisez maintenant le dossier public comme base_url()."public/[YOUR ASSET FOLDER]"

    J’espère que cela t’aides 🙂

    Je mets généralement tous mes fichiers dans un dossier “assets” dans la racine de l’application, puis je m’assure d’utiliser un Asset_Helper pour pointer vers ces fichiers. C’est ce que suggère CodeIgniter.

    Personne ne dit que vous devez modifier les .htacces et append le répertoire dans la condition de réécriture. J’ai créé un répertoire “public” dans le répertoire racine avec “system”, “application”, “index.php”. et édité le fichier .htaccess comme ceci:

     RewriteCond $1 !^(index\.php|public|robots\.txt) 

    Maintenant, vous devez simplement appeler Vous pouvez append le sous-répertoire dans le répertoire “public” à votre guise.

    Quel que soit l’endroit où vous avez placé le fichier CSS, vous pouvez simplement utiliser l’assistant CodeIgniter “html” 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’assistant “html”, soit 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 en fait pas vraiment la méthode “CodeIgniter” (je pense que cette question a quelques doublons). Cela fonctionnera, mais l’une des raisons d’utiliser un framework est d’utiliser les fonctions pré-définies.

    Il y a beaucoup de helpers dans codeigniter pour faire ce genre de chose.

    append un dossier n’importe quel nom, par exemple public et append le fichier .htaccess et écrire autoriser de tout ce que cela signifie, dans ce dossier tous vos fichiers et tous les dossiers ne donneront pas d’erreur Accès interdit! l’utiliser comme ça

       

    J’utilise la structure de dossiers suivante:

     application system static admin js css images public js css images uploads original thumbs 

    J’utilise la dernière version de CodeIgniter 3.1.0. La structure de son dossier est la suivante:

    • système
    • application
    • mode d’emploi
    • les atouts
      • images
      • js
      • css

    C’est là que vous devez placer les fichiers images, css et js dans le dossier assets.

    (Je suis nouveau sur Codeigniter, donc je ne sais pas si c’est le meilleur conseil)

    Je conserve les fichiers accessibles au public dans mon dossier public. Il est logique qu’ils soient là et je ne veux pas utiliser Codeigniter pour quelque chose dont je n’ai pas besoin.

    L’arborescence de répertoires ressemble à ceci:

    • /application/
    • /Publique/
    • / public / css /
    • / public / img /
    • / public / js /
    • /système/

    Les seuls fichiers que je garde dans / public / sont 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] 

    Dans le dossier assets.Ensuite, créez des dossiers comme css, js / scripts, images

    Salut notre structure est comme Application, système, user_guide

    créer un dossier nomme les ressources juste à côté de tous les dossiers, puis à l’intérieur de ce dossier de ressources, créez css et javascript et le dossier images mettez tous vos css js insiide les dossiers

    maintenant allez à header.php et appelez le css comme ça.

        

    L’ link_tag() est clairement la manière de procéder. Mettez votre css à sa place habituelle, dans site_root / css / puis utilisez l’aide:

    De la CodeIgniter docs …

     echo link_tag('css/mystyles.css'); 

    Sortie