Я получаю статус 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'
}
},
Я предполагаю, что это было потому, что вы написали template: 'views/templates/addlist-modal.html'
вместо templateUrl: 'views/templates/addlist-modal.html'
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 запрос к этому файлу блокируется этим.
Прокомментируйте это и посмотрите, все ли работает. Используйте это с осторожностью, так как он обеспечивает доступ к вашим файлам.
Я просто вставлял вашу директиву в свое рабочее приложение, и все получилось отлично. Вы остановились и начали хрюкать? Примечание на стр. 16 может объяснить, почему каталог не был выбран динамически.