2015-08-21 23 views
5

Próbuję zbudować prostą aplikację do rutowania w angularjs. Mam główną stronę index.html z ng-view div i kod javascript do routingu. Również 2 proste strony html view2.html i view3.html umieszczone w podfolderze partials1. Dostaję poniżej błędu. Proszę pomóż.

Błąd: Odmowa dostępu. Błąd: [$ kompilacji: tpload] Nie udało się załadować szablonu: partials1/view3.html http://errors.angularjs.org/1.3.15/ $ kompilacji/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> 
    
+0

Zadam oczywiste pytanie: czy masz odpowiednie uprawnienia do folderu "partials1" i następującego po nim "view3.html"? – SamHuckaby

Odpowiedz

4

Error: Access is denied informuje, że szablon nie jest dostępny. Spróbuj otworzyć szablon w przeglądarce. Coś takiego: http://my_project/partials1/view3.html. Aby wyświetlić pełny adres URL używany przez aplikację, użyj konsoli dubug (karta XHR).

+0

Brakowało ** ukośnika na początku **: tu jest poprawne 'templateUrl: '/ partials1/view3.html',' hope someone help. – stom

0

W moim przypadku problem polega na tym, że dodałem nagłówki domyślne, takie jak Accept = 'application/json'. Moje trasy nagle przestały działać, ponieważ nagłówki te nie tylko zostały zastosowane do moich połączeń z http.post, ale zostały również zastosowane do mojego Routingu ...? Dziwne.

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

mogą być spowodowane poniżej ustawienie w web.config

<system.webServer> 
    <handlers> 
     <remove name="BlockViewHandler"/> 
     <add name="BlockViewHandler" path="*" verb="*" preCondition="integratedMode" type="System.Web.HttpNotFoundHandler" /> 

Powoduje to blokowanie żadnego bezpośredniego żądania do pliku w katalogu widoków. Żądanie kątowe xhr do tego pliku jest przez to blokowane.

Skomentuj i sprawdź, czy wszystko działa. Używaj tego z rozwagą, ponieważ umożliwia dostęp do twoich plików.

Można również sprawdzić na tej URL więcej odpowiedzi: Error: $compile:tpload failed to load template Http status : 404

0

miałem ten sam błąd, w moim przypadku serwer WWW został napisany z js węzłem a uri dostać widoki, które były w określonej ścieżce z $ stateProvider nie został utworzony, ponieważ dla każdego widoku/szablonu, który ma wyświetlać żądanie http typu XHR GET.

Ponieważ URI nie istniało, uzyskałem kod 404, co spowodowało, że przeglądarka otrzymała wywołanie zwrotne, które go zabiło. Upewnij się, że serwer zwraca żądany widok.(Przetłumaczone z Google Translate)