我有一个利用模板缓存的Angular应用程序(我们的Gulp构建过程的一部分)。应用程序运行正常,缓存的视图加载...除非通过PhantomJS(或Google的Pagespeed或Fetch as Google)进行渲染。
经过多次调查后,我发现路由引发了这个错误:
Error: [$compile:tpload] Failed to load template: /static/app/public/views/about.html (HTTP status: undefined undefined)
我假设未定义的HTTP状态与没有往返的事实有关...但是我无法找到有关为什么会失败的任何信息,特别是为什么只有在使用上述内容时工具。
总结:
修改
我添加了以下调试行:
var about = $templateCache.get('/static/app/public/views/about.html');
console.log('about', about);

...我在控制台日志中看到了正确的输出,即使使用PhantomJS。
答案 0 :(得分:1)
事实证明我忽略了另一条错误消息:
Error: undefined is not a constructor (evaluating 'newUrl.startsWith(target)')
......由于PhantomJS的ES5而发生。我没有想到这两个问题是相关的,但在为String.prototype.startsWith提供polyfill后,问题就消失了。