2016-06-06 3 views
1

Express와 함께 각도를 사용하고 있습니다. 메인 페이지가 아닌 '/' 페이지를 새로 고침하려고 할 때 문제가 발생했습니다. 등록 페이지 http://localhost:3000/register과 같이 404 오류 페이지를 찾을 수 없습니다. 각도 회전 새로 고침 페이지 오류 404

는 그럼 난 내 server.js이 코드 (고속 파일)

app.all('/*', function(req, res) { 
    res.sendfile('public/index.html'); 
}); 

을 추가했지만 그것은 눈 나는 항상 루트 URL로 리디렉션. 나는 내가 새 페이지를 새로 고쳐서 내가 다시 한 페이지를 넘겨주기를 원한다.

내 server.js 파일

var express = require('express'); 
    var path = require('path'); 
    var favicon = require('serve-favicon'); 
    var logger = require('morgan'); 
    var passport = require('passport'); 
    var session = require('express-session'); 
    var cookieParser = require('cookie-parser'); 
    var bodyParser = require('body-parser'); 
    var mongoose = require('mongoose'); 
    //connect to mongodb 
    require('./models/user.js'); 
    require('./models/item.js'); 
    mongoose.connect("mongodb://localhost:27017/web-shop"); 

    var index = require('./routes/index'); 
    var api = require('./routes/api'); 
    var authenticate = require('./routes/authenticate')(passport); 

    var app = express(); 

    // view engine setup 
    app.set('views', path.join(__dirname, 'views')); 
    app.set('view engine', 'ejs'); 

    // uncomment after placing your favicon in /public 
    //app.use(favicon(path.join(__dirname, 'public', 'favicon.ico'))); 
    app.use(logger('dev')); 
    app.use(session({ 
     secret: 'super duper secret' 
    })); 
    app.use(bodyParser.json()); 
    app.use(bodyParser.urlencoded({ extended: false })); 
    app.use(cookieParser()); 
    app.use(express.static(path.join(__dirname, 'public'))); 
    app.use(passport.initialize()); 
    app.use(passport.session()); 

    //Initialize Passport 
    var initPassport = require('./passport-init'); 
    initPassport(passport); 

    app.use('/', index); 
    app.use('/api', api); 
    app.use('/auth', authenticate); 


    app.all('/*', function(req, res) { 
     res.sendfile('public/index.html'); 
    }); 


    // catch 404 and forward to error handler 
    app.use(function(req, res, next) { 
     var err = new Error('Not Found'); 
     err.status = 404; 
     next(err); 
    }); 

    // error handlers 

    // development error handler 
    // will print stacktrace 
    if (app.get('env') === 'development') { 
      app.use(function(err, req, res, next) { 
      res.status(err.status || 500); 
      res.render('error', { 
       message: err.message, 
       error: err 
      }); 
     }); 
    } 

// production error handler 
// no stacktraces leaked to user 
app.use(function(err, req, res, next) { 
    res.status(err.status || 500); 
    res.render('error', { 
    message: err.message, 
    error: {} 
    }); 
}); 


module.exports = app; 

입니다 그리고 티는 내 각 라우팅

app.config(function ($routeProvider, $locationProvider) { 
    $routeProvider 
     .when('/', { 
      templateUrl: 'main.html', 
      controller: 'itemController' 
     }) 
     .when('/login', { 
      templateUrl: 'login.html', 
      controller: 'authController' 
     }) 
     .when('/register', { 
      templateUrl: 'register.html', 
      controller: 'authController' 
     }) 
     .when('/add_item', { 
      templateUrl: 'dashboard.html', 
      controller: 'itemController' 
     }) 

     $locationProvider.html5Mode(true); 
}) 
+0

'./routes/index'파일을 공유 할 수 있습니까? –

+0

'var express = require ('express'); var router = express.Router(); router.get ('/', function (req, res, next) { \t res.render ('index', {title : "Naslov"}); }}); module.exports = router; ' –

+1

app.use ('/ ', index);를 삭제 해보세요. 그런 다음 작동하는지 확인하십시오. –

답변

1
app.all('/*', function(req, res) { 
    res.sendfile('public/index.html'); 
}); 

제거 app.use ('/', 인덱스)이다; 위 경로가 '/'를 제외한 다른 경로를 만날 때마다 index.html을 보내도록 허용하지 않으므로 정상적으로 작동해야합니다.