我有一个与Yeoman一起开发的有角度的网站。我在开发期间迭代时,我的网站运行良好。当我在开发之后部署缩小的,uglified,版本化的站点时,在加载站点时在控制台中加载指令模板时出现以下错误。
错误:[$ compile:tpload]无法加载模板:views / template_name .html(HTTP状态:404未找到)
我使用Windows 7和所有的yeoman网络客户端工具集(grunt,npm,bower,指南针等)。
答案 0 :(得分:2)
出现此错误的原因是Windows文件不区分大小写,显然是javascript字符串。我的解决方案是确保我的指令中templateUrl
字段的大小写与我的views文件夹中的文件大小写完全匹配。
说明:
Yeoman做了这件伟大的事情,它将在缩小的javascript文件中的缩小/ uglification /版本化/部署过程中为您创建angularjs模板缓存。它会找到从templateUrl
引用的模板,并将它们捆绑到javascript文件中的纯文本中,这样您就无需执行任何操作即可正常工作!我遇到的问题是模板缓存使用我的指令中templateUrl
字段中的文件名索引。
在开发模式下,节点从服务器上的文件(在我的Windows机器上)加载模板,此负载是不敏感。在具有此模板缓存的所谓“dist”模式下,此templateUrl查找现在为敏感。
我的解决方案是确保我的templateUrl
字段的大小写与我的views文件夹中的文件大小写完全匹配。