我正在尝试遵循PluralSite AngularJS基础课程中的代码示例。 下载示例代码后,我发现在查找示例应用程序中定义的所有部分视图时存在问题。
项目结构如下:
DemoApp/app/partials
DemoApp/app/js/app.js
未找到的第一个局部视图是:
GET http://myserver.mydomain.com:63342/partials/eventList.html 404 (Not Found) eventList.html
以下是操作系统路径的快照:
/Users/eugene/Documents/DevTraining/MeanStack/AngularJS/AngularJS Fundamentals/Demos/Original/DemoApp/app/partials/eventList.html
正如您所看到的,文件显然在那里。
以下是app.js
:
'use strict';
var eventsApp = angular.module('eventsApp', ['ngResource']);
eventsApp.config(['$routeProvider', '$locationProvider', function($routeProvider, $locationProvider) {
$routeProvider.when('/events', {templateUrl: '/partials/eventList.html', controller: 'EventListController'});
$routeProvider.when('/events/:eventId/sessions/edit/:sessionId', {templateUrl: '/partials/editSession.html', controller: 'EditSessionController'});
$routeProvider.when('/events/:eventId/sessions/new', {templateUrl: '/partials/editSession.html', controller: 'EditSessionController'});
$routeProvider.when('/event/:eventId', {templateUrl: '/partials/event.html', controller: 'EventController'});
$routeProvider.when('/events/new', {templateUrl: '/partials/editEvent.html', controller: 'EditEventController'});
$routeProvider.when('/events/edit/:eventId', {templateUrl: '/partials/editEvent.html', controller: 'EditEventController'});
$routeProvider.when('/register', {templateUrl: '/partials/editProfile.html', controller: 'EditProfileController'});
$routeProvider.when('/editProfile', {templateUrl: '/partials/editProfile.html', controller: 'EditProfileController'});
$routeProvider.when('/viewProfile/:userName', {templateUrl: '/partials/viewProfile.html', controller: 'ViewProfileController'});
$routeProvider.when('/login', {templateUrl: '/partials/login.html', controller: 'LoginController'});
$routeProvider.otherwise({redirectTo: '/events'});
$locationProvider.html5Mode(true);
}]);
非常感谢任何帮助。
答案 0 :(得分:0)
嗯,这里有两个不同的问题:
正如robertklep所指出的,我的Express配置出了问题。事实上,甚至没有涉及Express配置 - 只是一个直接的节点服务器来运行角度前端示例。为了解决这个问题,我创建了最基于的Express服务器:
var express = require("express");
var app = express();
/* serves main page */
app.get("/", function(req, res) {
res.sendfile('index.html', { root: 'app' });
});
///* serves all the static files */
app.get(/^(.+)$/, function(req, res){
console.log('static file request : ' + req.params);
res.sendfile( __dirname + req.params[0]);
});
var port = process.env.PORT || 3000;
app.listen(port, function() {
console.log("Listening on " + port);
});
这允许我开始切断index.html页面,而index.html页面又包含angular标签和指令。
没有/部分映射正确的另一个(即原始)问题与启动Express服务器进程的事实有关。
一旦我意识到这一点,我将我的服务器脚本放在app目录中,这样就可以正确识别/ partials的映射,从而允许找到并正确提供角度部分片段。现在它有效。