it-swarm.com.de

Wo kann ich Image-Dateien, CSS, JS usw. in Codeigniter einfügen?

Wo ist es zulässig, CSS-Ordner und Image-Dateiordner zu speichern? Ich habe im Ansichtsordner nachgedacht? Der Controller leitet jedoch immer den Pfad zur Basis-URL um, so dass ich den Pfad in der .html-Datei angeben muss, wo er sich befindet, was redundant ist.

135
triq

Ich habe so ein Setup:

  • anwendung
  • system
  • vermögenswerte
    • js
    • imgs
    • css

Ich habe dann eine Hilfsfunktion, die je nach Konfiguration einfach den vollständigen Pfad dazu zurückgibt, ähnlich wie in:

application/helpers/utility_helper.php:

function asset_url(){
   return base_url().'assets/';
}

Normalerweise halte ich ähnliche Routinen in derselben Datei und lade sie automatisch mit der Autoload-Konfiguration von codeigniter. 

Hinweis: Autoload-URL-Helper für den Zugriff auf base_url().

application/config/autoload.php:

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

Sie haben dann in Ihrem Code Zugriff auf asset_url().

183
Eddie

Nein, im Ansichtenordner ist es nicht gut.

Schauen Sie: Sie müssen 3 grundlegende Ordner in Ihrem Projekt haben: 

system // Dies ist ein CI-Framework. Es gibt nicht viele Gründe, diese Dateien zu berühren.

application // Hier geht es um Ihre Logik, um die Dateien, aus denen die Anwendung besteht.

public // dies muss deine Dokumentwurzel sein

Aus Sicherheitsgründen ist es besser, das Framework und die Anwendung außerhalb Ihrer documentroot zu halten (public_html, htdocs, public, www ... etc).

In Ihrem öffentlichen Ordner sollten Sie Ihre öffentlichen Informationen eingeben, was die Browser sehen können. Es ist üblich, die Ordner zu finden: images, js, css; So wird Ihre Struktur sein:

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

So gehe ich mit öffentlichen Vermögenswerten um. Hier verwende ich die Bootstrap-Methode von Phalcon PHP .

Ordnerstruktur

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

Zu bearbeitende Dateien

  1. .htaccess*

    Alle Anforderungen an das Projekt werden in das Verzeichnis public/.__ geschrieben. es zum Dokumentwurzel machen. Dieser Schritt stellt sicher, dass die interne Projektordner bleiben der öffentlichen Anzeige verborgen und eliminieren somit Sicherheitsbedrohungen dieser Art. - Phalconphp Doc

    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteRule  ^$ public/    [L]
        RewriteRule  (.*) public/$1 [L]
    </IfModule>
    
  2. .htaccess**

    Rules überprüft, ob die angeforderte Datei vorhanden ist, und falls ja, ___. muss nicht vom Webservermodul neu geschrieben werden. - Phalconphp Doc

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

    Ändern Sie den Pfadapplicationund den Pfadsystemals:

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

Jetzt verwenden Sie den Ordnerpublicalsbase_url()."public/[YOUR ASSET FOLDER]"

Hoffe das hilft :)

13
Ijas Ameenudeen

Normalerweise lege ich alle meine Dateien in einen Ordner mit dem Namen "assets" im Stammverzeichnis der Anwendung. Dann stelle ich sicher, dass Sie mit Asset_Helper auf diese Dateien verweisen. Dies schlägt CodeIgniter vor.

11
citizen conn

Niemand sagt, dass Sie die .htacces ändern und das Verzeichnis in der Umschreibungsbedingung hinzufügen müssen. Ich habe ein Verzeichnis "public" im Stammverzeichnis neben "system", "application", "index.php" erstellt ". und bearbeitete die .htaccess-Datei folgendermaßen:

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

Jetzt müssen Sie einfach <?php echo base_url()."/public/yourdirectory/yuorfile";?> aufrufen. Sie können ein Unterverzeichnis innerhalb des "öffentlichen" Verzeichnisses hinzufügen.

7
Kreker

Unabhängig davon, wo Sie die CSS-Datei ablegen, können Sie einfach den Helper CodeIgniter "html" namens link_tag () verwenden. Sie würden diesen Helfer etwa so anwenden:

echo link_tag('folder/subfolder/stylesheet.css');

Es liegt an Ihnen, die CSS-Datei an der am besten geeigneten Stelle (Ihrer Meinung nach) zu lokalisieren. Sie müssen entweder den Helper "html" automatisch laden oder ihn separat laden, um ihn zu verwenden.

Die Leute schlagen immer die Verwendung von base_url () vor, um dies zu erreichen, aber es ist nicht wirklich der "CodeIgniter" Weg, dies zu tun (ich denke, diese Frage hat ein paar Duplikate). Das wird funktionieren, aber einer der Gründe für die Verwendung eines Frameworks ist die Verwendung der vorgefertigten Funktionen. 

Es gibt viele Helfer im Codeigniter, die diese Art von Aufgaben ausführen.

4
Cheesus Toast

fügen Sie einen Ordner mit einem beliebigen Namen hinzu, z. B. public, und fügen Sie .htaccess - Datei hinzu, und schreiben Sie allow aus allen. Dies bedeutet, dass alle Dateien und alle Ordner in diesem Ordner keinen Fehler Access verbieten! benutze es so

<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>
4
Sandeep Mehra

Ich verwende die neueste Version von CodeIgniter 3.1.0 ..__ Die Ordnerstruktur lautet:

  • system
  • anwendung
  • benutzerhandbuch
  • vermögenswerte
    • bilder
    • js
    • css 

Dort sollten Sie die Images-, CSS- und JS-Dateien im Assets-Ordner ablegen. 

3
coolest

Ich verwende folgende Ordnerstruktur:

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

sie können den Ordner "css" in den Ordner "assest" (Sie können einen beliebigen Namen eingeben) im Verzeichnis Ihres Projekts ablegen:
ci_app

anwendung 
Ansichten 
Vermögenswerte 

         css 
             style.css 

... Wenn Sie diese Datei in eine Seite laden möchten, können Sie die base_url () - Funktion folgendermaßen verwenden: <head> <link rel='stylesheet' href='<?php echo base_url();?>assets/css/style.css'> </head> und Sie werden sicher, dass Sie base_url Ihres Projekts in der config.php hinzufügen Datei wie folgt:

$config['base_url'] = 'http://localhost/ci_app';
1
Rabab Sh

(Ich bin neu bei Codeigniter, daher weiß ich nicht, ob dies der beste Rat ist.)

Ich behalte öffentlich verfügbare Dateien in meinem öffentlichen Ordner ... Es ist logisch, dass sie dort sind und ich möchte Codeigniter nicht für etwas verwenden, für das ich es nicht brauche.

Der Verzeichnisbaum sieht so aus:

  • /Anwendung/ 
  • /Öffentlichkeit/ 
  • / public/css / 
  • / public/img / 
  • / public/js / 
  • /System/

Die einzigen Dateien, die ich in/public/aufbewahre, sind die index.php von Codeigniter und meine .htaccess-Datei:

RewriteEngine On
RewriteBase /

RewriteRule ^css/ - [L]
RewriteRule ^img/ - [L]
RewriteRule ^js/ - [L]

RewriteRule ^index.php(.*)$ - [L]
RewriteRule ^(.*)$ /index.php?/$1 [L]
1
Anthony Scaife

Hallo, unsere Struktur ist wie Anwendung, System, Benutzerführung 

erstellen Sie einen Ordnernamen in der Nähe aller Ordner, und erstellen Sie in diesem Ordner "CSS" und "JavaScript" sowie den Ordner "Images" Legen Sie alle Ihre CSS-Dateien in die Ordner 

gehen Sie jetzt zu header.php und rufen Sie die CSS genau so auf.

<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"> 
0