Ошибка: $ compile: tpload не удалось загрузить шаблон Статус Http: 404

0

Я получаю статус 404 от Chrome, когда пытаюсь запустить локальный проект, используя angular. Я не уверен, где проблема, и я уже пробовал предлагаемые ответы на подобные вопросы.

Это мой файл директив:

'use strict';

/**
 * @ngdoc directive
 * @name stockDogApp.directive:stkWatchlistPanel
 * @description
 * # stkWatchlistPanel
 */
angular.module('stockDogApp')
  .directive('stkWatchlistPanel', function ($location, $modal, WatchlistService) {
    return {
      templateUrl: 'views/templates/watchlist-panel.html',
      restrict: 'E',
      scope : {},
      link: function($scope){
        $scope.watchlist = {};
        var addListModal = $modal({
          scope : $scope,
          template: 'views/templates/addlist-modal.html',
          show : false

        });

        $scope.watchlists = WatchlistService.query();

        $scope.showModal = function(){
          addListModal.$promise.then(addListModal.show);
        };
        $scope.createList = function(){
          WatchlistService.save($scope.watchlist);
          addListModal.hide();
          $scope.watchlist = {};
        };
        $scope.deleteList = function(list){
          WatchlistService.remove(list);
          $location.path('/');
        };
      }
    };
  });

Это древовидная папка моей папки "app"

|-- 404.html
|-- favicon.ico
|-- images
|   `-- yeoman.png
|-- index.html
|-- robots.txt
|-- scripts
|   |-- app.js
|   |-- controllers
|   |-- directives
|   |   `-- stk-watchlist-panel.js
|   `-- services
|       `-- watchlist-service.js
|-- styles
|   `-- main.css
`-- views
    `-- templates
        |-- addlist-modal.html
        `-- watchlist‐panel.html

Я получаю сообщение об ошибке страницы, когда я загружаю index.html в свою консоль.

Error: [$compile:tpload] Failed to load template: views/templates/watchlist-panel.html (HTTP status: 404 Not Found)
http://errors.angularjs.org/1.4.4/$compile/tpload?p0=views%2Ftemplates%2Fwatchlist-panel.html&p1=404&p2=Not%20Found

Я также попытался ввести полный путь из корневой папки, но все еще не обнаружил эту страницу.

Я не уверен, что это причина, но посмотрите на инструменты разработчика Chrome, показывающие, что вкладка source не содержит в себе папку приложения (она показывает только "bower_components", "scripts", "styles" и index.html

** обновление **

похоже, что единственная папка, которая не может видеть angular, - это папка views в приложении. Я не знаю, где проблема. Может быть проблема с хрюканьем?

ngtemplates: {
  dist: {
    options: {
      module: 'stockDogApp',
      htmlmin: '<%= htmlmin.dist.options %>',
      usemin: 'scripts/scripts.js'
    },
    cwd: '<%= yeoman.app %>',
    src: 'views/{,*/}*.html',
    dest: '.tmp/templateCache.js'
  }
},
  • 0
    Это работает минимизированный код? Или просто запустил «хрюканье»?
  • 1
    ты решил это, потому что если ты это сделал, я застрял на этом
Показать ещё 3 комментария
Теги:
gruntjs
bower

3 ответа

2

Я предполагаю, что это было потому, что вы написали template: 'views/templates/addlist-modal.html' вместо templateUrl: 'views/templates/addlist-modal.html'

0
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 запрос к этому файлу блокируется этим.

Прокомментируйте это и посмотрите, все ли работает. Используйте это с осторожностью, так как он обеспечивает доступ к вашим файлам.

0

Я просто вставлял вашу директиву в свое рабочее приложение, и все получилось отлично. Вы остановились и начали хрюкать? Примечание на стр. 16 может объяснить, почему каталог не был выбран динамически.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню