AngularJS HTML模板在Nodejs / Expressjs

时间:2016-09-04 19:44:13

标签: angularjs node.js

我正在开发一个小型的AngularJS项目。我用ui-router来路由不同的html模板,工作正常。代码和文件夹结构如下所示:

var app = angular.module('flapperNews', ['ui.router']);
app.config([
'$stateProvider',
'$urlRouterProvider',
function ($stateProvider, $urlRouterProvider) {
    $stateProvider
      .state('news', {
          url: '/news',
          templateUrl: 'news.html',
          controller: 'MainCtrl'
      })
    .state('posts', {
        url: '/posts/{id}',
        templateUrl: 'posts.html',
        controller: 'PostsCtrl'
    });

    $urlRouterProvider.otherwise('news');
}]);

文件夹结构: enter image description here

但是,当我尝试将它们安装到Nodejs / Expressjs时,它会显示错误:GET http://localhost:3000/news.html 404(Not Found)

enter image description here

我已将所有html模板放入views文件夹中,如下所示,但不起作用。我是NodeJS的新手,有谁知道发生了什么?非常感谢你!

2 个答案:

答案 0 :(得分:1)

将所有HTML个文件放在public文件夹中,然后从那里访问所有文件。由于Angular无法从views文件夹获取该页面,因为它是服务器端的东西。 将HTML文件放在public文件夹中不是标准,但在使用Angular

时主要使用它

您可以使用Jess回答

here获取更多提示

答案 1 :(得分:0)

我认为您/views/home.html中只需要templateUrl:,而views文件夹应位于public目录中。

我假设你在某处接近app.use(express.static(path.join(__dirname, 'public')));的某些东西?这样您就可以在public目录中显示静态文件。