Мой обычный подход к этой проблеме - это либо обернуть все мои дочерние шаблоны в один шаблон, который заботится о моих включениях (JS и CSS). Затем я проверяю, правильно ли установлено кэширование, чтобы эти сценарии загружались только один раз для каждого пользователя. Другими словами, я заставляю загрузку всех моих внешних сценариев в первом представлении, а затем полагаюсь на кэширование, чтобы не перезагружать JS каждый раз.
Объединение всех ваших JS в один файл также сократит время загрузки из-за уменьшения количества сгенерированных запросов.
Еще одна вещь, на которую стоит обратить внимание, это то, что вы упомянули, что ставите JS в голову. Хотя большинство людей делают это, размещение JS в голове может привести к тому, что ваши страницы будут загружаться медленнее. Файлы JS не загружаются параллельно, поэтому они блокируют все остальные загрузки. Google и Yahoo рекомендуют размещать JS внизу вашей страницы, где это возможно, чтобы улучшить взаимодействие с пользователем.
См. Инструмент Yahoo YSlow и Google PageSpeed для этого.