Есть несколько способов приблизиться к этому.
Самым простым было бы создать контроллер для вашего динамически генерируемого JS.Перед вызовом представления, которое выводит JS, установите заголовок ответа:
$this->output->set_header('Content-type: text/javascript');
Если у вас много файлов JS, вы можете пойти еще дальше, заставив все ваши ссылки JS вызывать этот контроллер.Вы можете настроить ссылки для запроса всех ваших файлов JS за один вызов, и контроллер может объединить их и обслуживать их как один файл.Вы можете включить информацию о версии в запрос, чтобы убедиться, что вы получаете правильную версию и не допускаете кэширования JS, когда вам необходимо обновить ее.
Если еще больше, контроллер может кэшировать объединенные файлы для заданноговерсия, поэтому вам не нужно обрабатывать ее каждый раз, когда она запрашивается.Если у вас есть JS-файлы, которым требуется динамическое содержимое, вы можете распределить JS по уровням таким образом, чтобы статические JS-файлы объединялись и кэшировались, тогда динамические JS-файлы каждый раз генерируются, объединяются с кешируемыми статическими и затем обслуживаются.