Ich würde es auf eine andere Art und Weise zu tun - js sollte extern sein, natürlich, aber warum nicht in vollem Umfang nutzen die Tatsache, dass Sie ein MVC-Framework, das perfekt geeignet ist, um alle Ihre Javascript-Magie zu behandeln haben?
Hier ist mein Rezept für Javscript (und CSS) Güte mit CI:
-
Holen Sie sich ein Exemplar von Verkleinern - wenn du es nicht schon weißt, wird dein Leben besser sein. Nicht in einem " Liebe auf den ersten Blick / Ich habe gerade jQuery entdeckt / xkcd / Unit Testing "Art und Weise, aber zumindest in einer " Kumpel, vorbereitete Anweisungen beseitigen die SQL-Injektion "Art und Weise.
-
Zweitens: Erstellen Sie einen CI-Controller, der Minify kapselt (sollte nicht allzu schwer sein, denken Sie nur daran, den richtigen HTTP-Header zu setzen und die Parameter weiterzugeben)
-
Aktivieren Sie optional die Zwischenspeicherung, damit alles blitzschnell läuft (Minify verfügt über eine integrierte Zwischenspeicherung, aber wenn Sie Ihre CI-Inhalte bereits zwischenspeichern, können Sie die gleiche Methode auch hier anwenden.
-
Definieren Sie optional einige Gruppen für Minify, um das Laden von Skripten noch angenehmer zu gestalten
-
Fügen Sie optional die Variablen baseurl und siteurl (und alle anderen Werte, die Sie benötigen) zur Javascript-Ausgabe hinzu
-
Und schon sollten Sie in der Lage sein, Ihre Skripte durch den Aufruf des Minify-Wrappers zu laden:
<script type="text/javascript" src="/min/g=js"></script>
Es ist wahnsinnig schnell, es ist gzipped, es braucht nur eine Anfrage statt vieler, es gibt Ihnen volle CI-Kontrolle über Ihre Skripte, und es macht sogar Ihren Quellcode sauberer.
Oh, und wenn Sie besonders nett zu Ihren Besuchern sein wollen, die den Quellcode durchstöbern, könnten Sie automatisch etwas wie dies zur Ausgabe hinzufügen:
// Javascript compressed using Minify by Ryan Grove and Steve Clay
// (http://code.google.com/p/minify/)
// Human-readable source files:
// http://www.yourdomain.com/js/core_functions.js
// http://www.yourdomain.com/js/interface.js
// http://www.yourdomain.com/js/newsticker.js
// http://www.yourdomain.com/js/more_magic.js
(...)
Zumindest mache ich das so.