How do I get this setup to work?
var app = angular.module('app', ['ui.router', 'app.controllers']);
/* FooCtrl isn't available here, why not? */
var controllers = angular.module('app.controllers', []);
controllers.controller('FooCtrl', function ($scope, $log) {});
<script src="app.js"></script>
<script src="controllers.js"></script>
<!-- also tried swapping this order -->
You controller is not a global Constructor function, but defined inside module, so you need to use the syntax.
controller: 'FooCtrl'
instead of
controller: FooCtrl