Javascript Angular/grunt无法加载模板

Javascript Angular/grunt无法加载模板,javascript,html,angularjs,gruntjs,yeoman,Javascript,Html,Angularjs,Gruntjs,Yeoman,我最近在我的yeoman应用程序中引入了angular指令用于模板制作,如果我grunt为该应用程序的正常开发版本提供服务,一切都会正常工作,但是当我使用grunt构建“dist”文件夹并提供服务时,我的应用程序指令中的html不会出现在页面上,控制台会记录此错误: Failed to load resource: the server responded with a status of 404 (Not Found) vendor.6e8f248d.js:5 Error: [$compil

我最近在我的yeoman应用程序中引入了angular指令用于模板制作,如果我grunt为该应用程序的正常开发版本提供服务,一切都会正常工作,但是当我使用grunt构建“dist”文件夹并提供服务时,我的应用程序指令中的html不会出现在页面上,控制台会记录此错误:

Failed to load resource: the server responded with a status of 404 (Not Found)

vendor.6e8f248d.js:5 Error: [$compile:tpload] Failed to load template: 
/views/tabdir.html (HTTP status: 404 Not Found)
我读到依赖注入需要采用数组格式,这样缩小就不会弄乱它,所以我对我所有的控制器都这样做了,但同样的问题仍然存在。例如:

angular.module('MainApp').controller('MainCtrl', ['$scope', 'inputBlur', function ($scope, inputBlur) {

}]);

是什么导致grunt无法正确加载我的指令?

我遇到了类似的问题。删除指令的
模板URL
值中的第一个前斜杠
/
,如下所示:

templateUrl:'views/tabdir.html'

听起来您使用Grunt的构建过程没有正确配置。您是否使用
html2js
将HTML模板正确地包含在dev中,但可能没有将它们连接到dist脚本?在dev和dist中交付HTML文件的方式有什么不同?我很确定这与缩小错误无关。我没听说过html2js,我使用的是由yeoman配置的默认设置。这对我有帮助吗?我应该在dev/dist之间寻找什么样的差异?我不知道yeoman使用的默认设置是什么,抱歉。您可以检查的一件事是,在开发模式下运行时(使用开发人员工具的“网络”选项卡),是否对HTML模板发出了请求。还要检查dev和dist之间提供的JS文件列表(或它们的内容)是否相同。dev/dist网络选项卡的不同之处在于,当dist处于活动状态时,dev没有缩小。dist的network选项卡显示对unnified html指令的失败GET请求,就好像它试图抓取不再存在的unnified文件一样。这可能是问题所在吗?听起来dev JS文件确实包含作为JS的HTML模板。搜索
$templateCache.put(
在dev和dist文件中-如果我是对的,它们中的一大堆将在dev文件中,而不是dist文件中。或者,如果它实际上是在dev模式下从服务器获取HTML部分,那么您可能需要考虑使用类似于
html2js
的东西将部分包含在dist JS文件中,这样您就不会遇到任何问题我需要单独分发HTML文件。对我有用,所以请检查你的templateURL