Ich würde es auf eine andere Art machen - js sollte offensichtlich extern sein, aber warum nicht die volle Funktionalität des MVC-Frameworks nutzen, das perfekt geeignet ist, um all deine JavaScript-Magie zu handhaben?
Hier ist mein Rezept für JavaScript- (und CSS-) Perfektion mit CI:
-
Greife eine Kopie von Minify ab - falls du es noch nicht kennst, wird dein Leben besser sein. Nicht auf eine "Liebe auf den ersten Blick / Ich habe gerade jQuery / xkcd / Unittesting entdeckt" Art, aber zumindest auf eine "Mann, vorbereitete Anweisungen verhindern SQL-Injection" Art.
-
Zweitens, erstelle einen CI-Controller, der Minify umschließt (sollte nicht zu schwer sein, denke daran, den richtigen HTTP-Header zu setzen und die Parameter zu übergeben)
-
Aktiviere optional das Caching, um alles blitzschnell ablaufen zu lassen (Minify hat Caching integriert, aber wenn du bereits den CI-Inhalt cachen, könntest du hier genauso gut die gleiche Methode verwenden.
-
Definiere optional einige Gruppen für Minify, um das Skriptladen noch angenehmer zu gestalten
-
Füge optional die baseurl- und siteurl-Variablen (und alle anderen Werte, die du benötigst) zur JavaScript-Ausgabe hinzu
-
Und voilà, du solltest jetzt in der Lage sein, deine Skripte durch Aufrufen des Minify-Wrapper zu laden:
Es ist wahnsinnig schnell, es ist komprimiert, es erfordert nur eine Anfrage anstelle von vielen, es gibt dir volle CI-Kontrolle über deine Skripte und es macht sogar deinen Quellcode sauberer.
Oh, und wenn du deinen Quellcode-gierigen Besuchern etwas Gutes tun möchtest, könntest du automatisch so etwas wie dies zur Ausgabe hinzufügen:
// JavaScript komprimiert mit Minify von Ryan Grove und Steve Clay
// (http://code.google.com/p/minify/)
// Menschlich lesbare Quelldateien:
// 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 ist das, was ich mache.