I put this at the base of my home page <script> if (typeof angular == 'undefined') alert('angular did not load properly'); </script>
and the alert box comes up for some reason angular is not being loaded when I public class CustomJavaScriptStack implements JavaScriptStack { public static final String ANGULAR_CORE_PATH = "angular.core.path"; public static final String ANGULAR_VERSION = "angular.version"; public static final String ANGULAR_PAGES_SUBPACKAGE = "angular.pages.subpackage"; public static final String JAVASCRIPT_STACK_ANGULAR = "js-angular"; public static final String CSS_STACK_ANGULAR = "css-angular"; public static final String FONT_STACK_ANGULAR = "font-angular"; public static final String JAVASCRIPT_STACK = "tapestry.javascript-stack"; public static final String JAVASCRIPT_STACK_DEFAULT = "js-prototype"; public static final String JAVASCRIPT_STACK_NONE = "js-none"; public static final String CSS_STACK = "tapestry.css-stack"; public static final String CSS_STACK_DEFAULT = "css-default"; public static final String CSS_STACK_DEFAULT_WITHOUT_BLACKBIRD = "css-default-without-blackbird"; public static final String CSS_STACK_NONE = "css-none"; public static final String DISABLED_FORM_AUTOFOCUS = "tapestry.disabled-autofocus"; /** * CustomJavascriptStack Constants */ public static final String STACK_ID = "custom-javascript-stack"; public static final String STACK_ROOT = "classpath:/META-INF/assets/js/bower_components"; public static final String APP_ROOT = "classpath:/META-INF/assets/psi"; public static final String ANGULAR_STACK_ROOT = STACK_ROOT + "/angular"; public static final String BOOTSTRAP_STACK_ROOT = STACK_ROOT + "/bootstrap"; public static final String BOOTSTRAP_CSS = BOOTSTRAP_STACK_ROOT + "/css"; public static final String BOOTSTRAP_FONTS = BOOTSTRAP_STACK_ROOT + "/fonts"; public static final String BOOTSTRAP_JS = BOOTSTRAP_STACK_ROOT + "/js"; private final boolean productionMode; private final List<Asset> assetStack; private final List<String> modulesStack = new ArrayList<String>(); private final List<StylesheetLink> cssStack = new ArrayList<StylesheetLink>(); public CustomJavaScriptStack( @Symbol(SymbolConstants.PRODUCTION_MODE) final boolean productionMode, final AssetSource assetSource) { this.productionMode = productionMode; final Mapper<String, Asset> pathToAsset = new Mapper<String, Asset>() { public Asset map(String path) { return assetSource.getExpandedAsset(path); } }; if (productionMode) { assetStack = F .flow("${angular.core.path}/angular/angular.min.js", "${angular.core.path}/angular-route/angular-route.min.js", "${angular.core.path}/angular-resource/angular-resource.min.js") .map(pathToAsset).toList(); } else { assetStack = F .flow(BOOTSTRAP_JS + "/bootstrap.js", STACK_ROOT + "/angular-cookies/angular-cookies.js", STACK_ROOT + "/angular-mocks/angular-mocks.js", STACK_ROOT + "/angular-resource/angular-resource.js", STACK_ROOT + "/angular-route/angular-route.js", STACK_ROOT + "/angular-scenario/angular-scenario.js", STACK_ROOT + "/angular-translate/angular-translate.js", STACK_ROOT + "/angular-translate-loader-static-files/angular-translate-loader-static-files.js", STACK_ROOT + "/angular-translate-storage-cookie/angular-translate-storage-cookie.js", ANGULAR_STACK_ROOT + "/angular.min.js", APP_ROOT + "/mixins/date-time.js", APP_ROOT + "/mixins/Gallery.js", APP_ROOT + "/mixins/TransparentText.js", APP_ROOT + "/mixins/TransparentTextImage.js", APP_ROOT + "/app.js" ) .map(pathToAsset).toList(); } for (Iterator<Asset> iter = assetStack.iterator(); iter.hasNext();) { Asset element = iter.next(); modulesStack.add(new String(element.toClientURL())); } } public String getInitialization() { return productionMode ? null : "Tapestry.DEBUG_ENABLED = true;"; } public List<Asset> getJavaScriptLibraries() { return assetStack; } public List<StylesheetLink> getStylesheets() { return Collections.emptyList(); } public List<String> getStacks() { return Collections.emptyList(); } @Override public JavaScriptAggregationStrategy getJavaScriptAggregationStrategy() { return JavaScriptAggregationStrategy.COMBINE_ONLY; } @Override public List<String> getModules() { return modulesStack; } }