我有一个与 Yeoman 一起开发的有 Angular 的网站。当我在开发过程中进行迭代时,我的网站运行良好。当我在开发后部署缩小、丑化、版本化的网站时,在加载网站时在控制台中加载指令模板时出现以下错误。
Error: [$compile:tpload] Failed to load template: views/template_name.html (HTTP status: 404 Not Found)
我将 Windows 7 与所有 yeoman 网络客户端工具集(grunt、npm、bower、compass 等)一起使用。
最佳答案
此错误的原因是 Windows 文件不区分大小写,而显然 javascript 字符串是。我的解决方案是确保我的指令中的 templateUrl
字段的大小写与我的 View 文件夹中的文件的大小写完全匹配。
解释:
Yeoman 做了一件很棒的事情,它将在缩小 javascript 文件中的缩小/丑化/版本化/部署过程中为您创建一个 angularjs 模板缓存。它会找到从您的 templateUrl
中引用的模板,并将它们捆绑到 javascript 文件中的纯文本中,因此您无需执行任何操作,它就可以正常工作!我遇到的问题是模板缓存在我的指令中的 templateUrl
字段中使用文件名进行索引。
在开发模式下,节点从服务器(在我的 Windows 机器上)上的文件加载模板,并且此加载不区分大小写。在使用此模板缓存的所谓“dist”模式下,此 templateUrl 查找现在区分大小写。
我的解决方案是确保我的 templateUrl
字段的大小写与我的 View 文件夹中的文件的大小写完全匹配。
关于angularjs - 未找到 Yeoman 指令模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31690191/