Ich beginne gerade mit CodeIgniter, und ich bin nicht sicher, wo Dinge wie css, js und Bilder gehen sollten. Draußen scheint der ganze Systemordner in Ordnung zu sein, aber das bedeutet, dass alles separat ist. Inside bedeutet, dass die Dateipfade länger sind, und ich bin besorgt, dass es die Dinge durcheinander bringen könnte. Was ist die beste Vorgehensweise zu diesem Thema?Wohin sollen Assets in einem Code-Igniter-Projekt gehen?
Antwort
ich in der Regel separate Ordner auf der Stammebene setzen, so dass ich am Ende mit einer Verzeichnisstruktur wie folgt auf:
/system
/css
/js
/img
scheint für mich zu arbeiten - wenn Sie site_url(url)
verwenden, ist es die URL aus der ist erzeugt root, so können Sie site_url('css/file.css')
verwenden, um URLs zu Ihren Stylesheets usw. zu generieren.
Ich hasse so viele Verzeichnisse auf der Stammebene, also benutze ich/public und benutze htaccess um/scripts nach/public/scripts umzuschreiben und so weiter .
Könnten Sie Ihren mod_rewrite veröffentlichen? – bswinnerton
Ich finde es am besten, die Assets auf der Root-Ebene zu halten. Sie können <?=base_url()?>
verwenden, um das vollständige Stammverzeichnis der Site zu protokollieren. In der Konfigurationsdatei richten Sie den Stamm der Website ein. Diese Aussage spiegelt das wider.
Aus diesem Grund können Sie enthält wie folgt verwenden:
<link href="<?=base_url()?>/css/style.css" rel="stylesheet" type="text/css" />
überall in Ihrem Code, und es wird immer noch http://example.com/css/style.css bekommen.
base_url()/css/name.css
base_url() enthält den folgenden Schrägstrich, so dass Sie möchten: base_url(). 'css/name.css'; –
ok.ok.thanks .ich weiß, aber ich habe es vergessen –
Um die site_url (url) Helfer auf diese Weise zu verwenden, müssen Sie sich zunächst Apache mod_rewrite (oder gleichwertig) konfigurieren Sie die index.php Segment aus der URI zu entfernen .
Andernfalls fügt die Methode site_url index.php der URL hinzu, die wahrscheinlich die Pfade zu Ihren Assets verfälscht, wenn Sie sie wie oben im Basisverzeichnis haben.
Hier ist die CodeIgniter Dokumentation auf index.php aus der URI zu entfernen:
Ich persönlich rippen das application
Verzeichnis aus dem system
Verzeichnis und ein Geschwisterchen zu system
machen. Ich erstelle dann ein Projektverzeichnis in public_html (www)
wo ich index.php verschiebe und meine öffentlichen Assets ablege.
Nehmen wir an, das Projekt, an dem Sie gerade arbeiten, heißt projekt
. In dem übergeordneten Verzeichnis zu public_html (www)
ein Verzeichnis CISYSTEM
, und in diesem Verzeichnis erstellen Sie ein Verzeichnis von der Version, die Sie verwenden, 202
, 210
usw.
/CISYSTEM
/202
/210
/another_CI_version
/projekt_application
/models
/views
/controllers
/private_assets
/public_html
/projekt
index.php
.htaccess
css
img
js
lib
Die Schönheit dieser Verzeichnisstruktur wird es fügt eine weitere Schicht genannt erstellen der Sicherheit und macht es tot-einfach zu aktualisieren/tauschen Sie Ihre CI-Kern. Außerdem sollten Sie keine Änderungen am Kern vornehmen - da Sie ein einziges Verzeichnis haben, in dem Ihr Kern gespeichert ist, und wenn alle Projekte darauf verweisen, bleiben die Daten DRY.
All diese Verzeichnis-Shuffling erfordert jedoch, dass Sie einige Dinge umleiten. Glücklicherweise macht CodeIgniter es einfach - alle Änderungen können in der index.php
Datei vorgenommen werden.
öffnen index.php
und Umleiten von ein paar Dinge:
Wechsel: $system_path = 'system';
An: $system_path = '../../CISYSTEM/210';
Wechsel: $application_folder = 'application';
An: $application_folder = '../../projekt_application';
Auch ich sehe eine Menge Leute über die Verwendung site_url()
in den anderen Antworten sprechen. Ich empfehle eine weniger ausführliche Art und Weise site_url()
verwenden ... Sie müssen es nicht nennen, jedes Mal, wenn Sie die Verwendung von HTML-Code des <base>
Element machen:
<base href="<?= site_url();?>">
nur gehört, dass in Ihrer Anwendung <head>
und Sie können rufen Sie Ihren Controller direkt ... wie in:
<a href='controllername/functionname'>Some Action</a>
Prost
- 1. Rails - Wohin sollen Controller-Helfer gehen?
- 2. Wohin gehen in einem IIFE deklarierte Variablen?
- 3. Wohin sollen Akteursmeldungen gemeldet werden?
- 4. Wohin sollten CreateMap-Anweisungen gehen?
- 5. app.config - wohin soll es gehen?
- 6. Wohin sollen Android-Anwendungen SQLite getWritableDatabase aufrufen?
- 7. Wohin gehen die winkelförmigen Hilfsfunktionen?
- 8. Wohin gehen JavaScript- und CSS-Dateien in einem Laravel-Projekt?
- 9. Wohin gehen Spring-Bean-Konfigurationsdateien in einem Maven-WAR-Modul?
- 10. Wohin gehen Subsonic-Klassen in einem ASP.NET MVC-Projekt?
- 11. Forward-Deklaration der Template-Klasse im verschachtelten Namespace: Wohin sollen Standard-Template-Argumente gehen?
- 12. Schienen 4 - Wohin gehen die Vermögenswerte der Lieferanten?
- 13. Wohin sollen temporäre Dateien, die vom MS-Chart-Steuerelement erstellt wurden, gehen?
- 14. Wie zu steuern, wohin $ py.class Dateien gehen?
- 15. Wohin soll benutzerdefinierter, wiederverwendbarer Animationscode gehen?
- 16. Methodenkommentare und Anmerkungen ... wohin soll jeder gehen?
- 17. Wohin soll die Caching-Logik in einer Flux-App gehen?
- 18. J2ee-Verpackung - wohin sollten 3rd-Party-Bibliotheken gehen?
- 19. Wohin gehen Drucke, wenn Flask mit Apache läuft?
- 20. Wohin mit freeze_support() in einem Python-Skript?
- 21. Kann man angeben, wohin die JVM-Crash-Dumps gehen?
- 22. Wohin gehen die Medienanfragen in einem Stylesheet: ganz unten oder durchgehend gemischt?
- 23. Wohin gehen nicht initialisierte globale Variablen nach der Initialisierung?
- 24. Wohin gehen Dateien, wenn Sie sie mit swift programmatisch löschen?
- 25. Wohin soll eine bestimmte Funktion gehen - Model oder Controller? CakePHP
- 26. Exchange Web Services: Wohin gehen die gelöschten Termine?
- 27. Anker gehen nicht dahin, wo sie sein sollen
- 28. Wohin soll die CSS-Eigenschaft im Listenstil gehen?
- 29. Wohin nach einem Jahr Java?
- 30. Wohin mit Hilfsfunktionen in einem Phoenix-Projekt?
Ach, das macht Sinn. Ich wollte site_url verwenden können, also macht das Sinn. Danke! –
Bedeutet das, dass Sie Ihren Systemordner in einem öffentlichen Verzeichnis behalten? –
@Blowski Ja. Ich weiß, es ist keine Best Practice, aber ich denke nicht, dass es ein Problem ist, besonders wenn Sie .htaccess verwenden, um den Zugriff darauf zu sperren. –