2015-05-30 166 views
0

有一些AngularJS路由:ExpressJS/AngularJS意見了路由

app.config(['$stateProvider', '$urlRouterProvider', '$locationProvider', function($stateProvider, $urlRouterProvider, $locationProvider) { 
    $stateProvider 
    .state('home', { 
     url: '/home', 
     templateUrl: '/home.html', 
     controller: 'MainCtrl', 
      resolve: { 
      postPromise: ['posts', function(posts){ 
       return posts.getAll(); 
      }] 
      } 
    }) 

    $locationProvider.html5Mode(true) 
    $urlRouterProvider.otherwise('home'); 
}]); 

這種路由是 '根/公/ Java腳本/ app.js'。所以,我存儲home.html'root/views/home.js'。

我ExpressJS的應用程序文件中包含該字符串:

app.set('views', path.join(__dirname, 'views')); 

但是,當我執行我的應用程序出現錯誤:404 '/home.html'。我該如何解決它?提前致謝!

+0

你試過'views/home.html'還是'/views/home.html'?我認爲第一個會起作用 –

回答

0

TemplateUrl是一個Angular模板,應位於公用文件夾中。所以templateUrl /home.html將解析爲/root/public/home.html,而不是/root/views/home.html。根據你提供的信息,我覺得這是問題所在。

0

我認爲你應該用templateUrl: 'views/home.html'(或者/views/home.html)代替templateUrl: '/home.html'。目前它沒有在視圖文件夾中使用home.html