angularjs错误:[$ compile:tpload]无法加载模板

时间:2015-08-21 19:25:05

标签: javascript html angularjs angularjs-routing

我正在尝试在angularjs中构建简单的路由应用程序。我有主要的index.html页面,其中包含用于路由的ng-view div和javascript代码。另外2个简单的html页面view2.html和view3.html放在子文件夹partials1中。 我收到了以下错误。请帮忙。

错误:访问被拒绝。 错误:[$ compile:tpload]无法加载模板:partials1 / view3.html http://errors.angularjs.org/1.3.15/ $编译/ tpload?P0 = partials1%2Fview3.html

  • 的index.html:

    <div data-ng-view></div>
    
    <script src="angular.js"></script>
    <script src="angular-route.js"></script>
    <script type="text/javascript">
        var demoApp = angular.module('demoApp', [ 'ngRoute' ]);
        demoApp.controller('SimpleController', function($scope) {
            $scope.customers = [ {
                name : 'Jon Smith1',
                city : 'Charlotte'
            }, {
                name : 'John Doe',
                city : 'New York'
            }, {
                name : 'Jane Doe',
                city : 'Jacksonville'
            } ];
        });
    
        demoApp.config([ '$routeProvider', function($routeProvider) {
            $routeProvider.when('/view1', {
                templateUrl : 'partials1/view3.html',
                controller : 'SimpleController'
            }).when('/view2', {
                templateUrl : 'partials1/view2.html',
                controller : 'SimpleController'
            }).otherwise({
                redirectTo : '/view1'
            });
        } ]);
    </script>
    

  • view2.html

    <div class="container">33333333333333</div>
    
  • view3.html

    <div class="container">33333333333333</div>
    

5 个答案:

答案 0 :(得分:4)

Error: Access is denied告诉您该模板无法访问。尝试在浏览器中打开模板。这样的事情:http://my_project/partials1/view3.html。要查看应用程序使用的完整URL,请使用dubug控制台(XHR选项卡)。

答案 1 :(得分:1)

Error: [$compile:tpload] Failed to load template: xyz.html (HTTP status: 404 Not Found)

可能是由web.config

中的以下设置引起的
 <system.webServer>
    <handlers>
      <remove name="BlockViewHandler"/>
      <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" />

这会阻止对Views目录中的文件的任何直接请求。此文件阻止了对此文件的Angular xhr请求。

评论并查看是否有效。请谨慎使用,因为它允许访问您的文件。

您还可以查看此网址以获取更多回复:Error: $compile:tpload failed to load template Http status : 404

答案 2 :(得分:0)

就我而言,问题是我添加了默认标题,例如Accept ='application / json'。所以我的路线突然停止工作,因为那些标题不仅应用于我的$ http.post调用,它们也应用于我的路由......?怪异。

答案 3 :(得分:0)

我遇到了同样的错误,在我的情况下,web服务器是用节点js编写的,uri用于获取$ stateProvider指定路径中的视图,因为每个要显示的视图/模板都没有生成类型为Xhr GET的http请求。

由于uri不存在,我获得了一个404代码,这使得浏览器进入回调,杀死了他。确保您的服务器正在返回请求的视图。 (用谷歌翻译翻译)

答案 4 :(得分:-1)

“错误:[$ compile:tpload]”

我解决了这个问题。我在IIS上部署了站点。

使用来源: https://www.c-sharpcorner.com/UploadFile/11d5d2/how-to-deploy-Asp-Net-website-in-iis-on-localhost/