Я бы сделал это по-другому - очевидно, js должен быть внешним, но почему бы не воспользоваться всеми преимуществами того факта, что у вас есть MVC-фреймворк, который идеально подходит для обработки всего вашего волшебства javascript?
Вот мой рецепт совершенства Javscript (и CSS) с помощью CI:
Возьмите копию Minify - если вы еще этого не знаете, ваша жизнь станет лучше. Не в " любви с первого взгляда / я только что обнаружил способ jQuery / xkcd / unit testing ", но по крайней мере в " Dude, подготовленные операторы уничтожают SQL-инъекции " пути.
Во-вторых, создайте контроллер CI, который инкапсулирует Minify (не должно быть слишком сложно, просто не забудьте установить правильный заголовок HTTP и передать параметры)
При желании можно активировать кэширование, чтобы все работало на удивление быстро (Minify имеет встроенное кэширование, но если вы уже кэшируете содержимое CI, вы можете использовать тот же метод здесь.
Опционально определите некоторые группы для Minify, чтобы сделать загрузку скрипта еще лучше
При желании добавьте переменные baseurl и siteurl (и любые другие значения, которые вам могут понадобиться) к выводу javascript
И, наконец, теперь вы сможете загружать свои скрипты, вызывая Minify-wrapper:
<script type="text/javascript" src="/min/g=js"></script>
Это безумно быстро, он распакован, принимает только один запрос, а не много, он дает вам полный контроль над вашими скриптами и даже делает ваш исходный код чище.
О, и если вы хотите быть более любезным со своими посетителями, просматривающими исходный код, вы можете автоматически добавить что-то подобное в вывод:
// 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
(...)
По крайней мере, так я и делаю.