【问题标题】:Working with Angular js, Node js server and express js使用 Angular js、Node js 服务器和 express js
【发布时间】:2016-06-01 06:07:04
【问题描述】:

所以,我有一个带有登录按钮的欢迎页面,它加载了一个基于 Angular Js 构建的模态表单。当我在 Google Chrome 上将welcome.html 页面作为独立页面运行时,它运行良好。

现在,我创建了一个 Express Js 框架项目并将 .html 修改为 .ejs 并将它们添加到视图中,然后启动节点服务器,它将完美地加载 Welcome.ejs 页面。

但是,当我点击登录按钮时,它会在控制台中引发以下错误..

angular.js:11756 GET http://localhost:3000/views/login-popup.ejs 404 (Not Found)

angular.js:11756 GET http://localhost:3000/views/login-popup.ejs 404 (Not Found)(anonymous function) @ angular.js:11756m @ angular.js:11517g @ angular.js:11227(anonymous function) @ angular.js:15961$eval @ angular.js:17229$digest @ angular.js:17045$apply @ angular.js:17337(anonymous function) @ angular.js:25023Qf @ angular.js:3456d @ angular.js:3444
angular.js:13550 Error: [$compile:tpload] http://errors.angularjs.org/1.5.5/$compile/tpload?p0=%2Fviews%2Flogin-popup.ejs&p1=404&p2=Not%20Found
    at Error (native)
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:6:412
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:156:158
    at https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:130:226
    at n.$eval (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:144:467)
    at n.$digest (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:142:47)
    at n.$apply (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:145:249)
    at l (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:97:55)
    at H (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:101:190)
    at XMLHttpRequest.u.onload (https://ajax.googleapis.com/ajax/libs/angularjs/1.5.5/angular.min.js:102:229)

这就是我的 Angular 加载 Modal 的方式

app.controller('LoginController',['$scope','$uibModal', function($scope,$uibModal){
        $scope.name = 'a100';
        $scope.loginModal = function(){
            var modalInstance = $uibModal.open({
                  animation: 'true',
                  templateUrl: '/views/login-popup.ejs',
                  controller: 'LoginModalController'
            });
        };
}]);

节点代码:

app.get('/',function(res,req){
    res.render('welcome');
});

var server = app.listen(3000);
console.log("Server Started at port 3000");

我是 Node 和 Angular 以及 Express 框架的新手。请您在这里指导我。

感谢您的宝贵时间。

P.S:我也试过删除/views

【问题讨论】:

标签: javascript angularjs node.js express


【解决方案1】:

看来你还没有暴露你的静态文件(css、js)。

This article 解释了如何使用 express 进行此操作。

这是快速入门的代码(从文章中复制粘贴)

app.use(express.static('public'));

这样做是文件夹 public 将暴露给网络。

Express 查找相对于静态目录的文件,因此 静态目录的名称不是 URL 的一部分。

【讨论】:

  • @Spark - 如果您选择此解决方案,我希望您将其标记为答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-12-20
  • 2017-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多