angularNgRoute“/”的作品,但其余的不?

我有一个应用程序在MEAN堆栈上运行,我似乎无法获得除“/”之外的任何angular度path。 我已经尝试了ng-Route和ui-router,并且都不断的发送“/”以外的任何东西(比如/ contacts或者/ portfolio_item / 4)回到“/”。

这里是app.js:

// using the express library in variable express var express = require('express'); var path = require('path'); var favicon = require('serve-favicon'); var logger = require('morgan'); var cookieParser = require('cookie-parser'); var bodyParser = require('body-parser'); // specify that app is a new express application var app = express(); app.use('/javascripts', express.static(__dirname + '/public/javascripts')); app.use('/images', express.static(__dirname + '/public/images')); app.use('/stylesheets', express.static(__dirname + '/public/stylesheets')); app.use('/pages', express.static(__dirname + '/public/pages')); app.use('/partials', express.static(__dirname + '/views/partials')); app.use('/portfolio.json', express.static(__dirname + 'portfolio.json')); app.get('*', function (req, res) { res.sendFile(__dirname + '/public/index.html'); }); 

这里是angularapp.js:

 var myApp = angular.module('myportfolio', ['ngRoute']) myApp.config(function($routeProvider){ $routeProvider .when('/', { templateUrl: '/pages/home.html', controller: 'mainController' }) .when('/portfolio_item/:item_number', { templateUrl: '/pages/item.html', controller: 'portfolioController' }) .when('/contacts', { templateUrl: '/pages/contact.html', controller: 'contactController' }) .otherwise({ redirectTo: '/' }); 

不pipe我做什么,/ portfolio_item / 5和/ contacts都不断显示/ pages / home.html …对我来说,只有索引才起作用是很奇怪的。 当我删除“.when('/',{”部分,它只会显示任何url没有任何视图的布局。

我正在C9环境中工作,并运行一个节点服务器,如果这有所作为?

如果你检查你的浏览器控制台,你会发现这样的错误:

未捕获的SyntaxError:意外的标记<

发生该错误的原因是服务器没有提供静态文件。 express.static被用作服务器express.static由的中间件。

要纠正这个问题,你需要包含这一行:

 app.use(express.static(__dirname + '/public')); 

这将服务公用文件夹中的所有静态文件。