AngularJS – 如何使用Http Web服务器呈现视图时禁用目录浏览/列表

我的RESTful MEAN应用程序在后端有一个node.js服务器,在前端有一个HTTP服务器。 以下是项目结构:

我的MEAN Restful项目结构

当我从控制台运行我的目录/应用程序/ HTTP服务器,并执行浏览其显示页面,如下所示的目录列表/浏览:

目录浏览/ Lising

一旦我点击浏览页面正在渲染。 以下是我的app.js:

'use strict'; var app = angular.module('app', ['ngRoute', 'authControllers', 'authServices']); var authControllers = angular.module('authControllers', []); var authServices = angular.module('authServices', []); var options = {}; options.api = {}; //dev URL options.api.base_url = "http://localhost:3000"; app.config(['$locationProvider', '$routeProvider', function($location, $routeProvider) { $routeProvider. when('/', { templateUrl: 'partials/home.html', controller: 'authCtrl' }). when('/login', { templateUrl: 'partials/signin.html', controller: 'authCtrl' }). when('/register', { templateUrl: 'partials/signup.html', controller: 'authCtrl' }). when('/me', { templateUrl: 'partials/me.html', controller: 'authCtrl' }). otherwise({ redirectTo: '/' }); }]); app.config(['$httpProvider', function ($httpProvider) { $httpProvider.interceptors.push('TokenInterceptor'); }]); app.run(function($rootScope, $location, $window, AuthenticationService) { $rootScope.$on("$routeChangeStart", function(event, nextRoute, currentRoute) { //redirect only if both isAuthenticated is false and no token is set if (nextRoute != null && nextRoute.access != null && nextRoute.access.requiredAuthentication && !AuthenticationService.isAuthenticated && !$window.sessionStorage.token) { $location.path("/login"); } }); }); 

server.js:

 var express = require('express'), jwt = require('express-jwt'), bodyParser = require('body-parser'), morgan = require('morgan'), methodOverride = require('method-override'), errorHandler = require('express-error-handler'), tokenManager = require('./server/config/token_manager'), secret = require('./server/config/secret'), http = require('http'), path = require('path'); var app = module.exports = express(); app.set('port', process.env.PORT || 3000); app.use(morgan('dev')); app.use(bodyParser.json()); app.use(methodOverride()); app.use(express.static(path.join(__dirname, 'app'))); var routes = require('./server/routes'); routes.users = require('./server/routes/users.js'); var env = process.env.NODE_ENV || 'development'; // development only if (env === 'development') { app.use(errorHandler()); } // production only if (env === 'production') { // TODO } app.all('*', function(req, res, next) { res.set('Access-Control-Allow-Origin', 'http://localhost'); res.set('Access-Control-Allow-Credentials', true); res.set('Access-Control-Allow-Methods', 'GET, POST, DELETE, PUT'); res.set('Access-Control-Allow-Headers', 'X-Requested-With, Content-Type, Authorization'); if ('OPTIONS' == req.method) return res.send(200); next(); }); /* Login */ app.post('/login', routes.users.login); app.post('/user/register', routes.users.register); app.get('/me', routes.users.me); /* Logout */ app.get('/logout', jwt({secret: secret.secretToken}), routes.users.logout); process.on('uncaughtException', function(err) { console.log(err); }); /** * Start Server */ http.createServer(app).listen(app.get('port'), function () { console.log('Express server listening on port ' + app.get('port')); }); 

需要做些什么来禁用这个目录列表/浏览或简单地在http:// localhost:8080 / ?上显示我的视图。

在你的server.js改变

 express.static(path.join(__dirname, 'app')); 

 express.static(path.join(__dirname, 'app'), {index: false});