2016-06-01 110 views
0

因此,我有一個帶登錄按鈕的歡迎頁面,它載入基於Angular Js構建的Modal表單。當我在Google Chrome上將welcome.html頁面作爲獨立頁面運行時,它工作正常。使用Angular js,Node js服務器和express js

現在,我創建了一個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) 

這是我的角度將如何加載模態

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

+0

似乎web客戶端找不到文件login-popup.ejs。你有節點代碼嗎? (韻不是^^) –

+1

這裏是暴露靜態文件與快速快速鏈接http://expressjs.com/en/starter/static-files.html –

+1

添加到問題。這是唯一的節點代碼,我已經添加到app.js除了生成的默認代碼 – Spark

回答

2

看來你沒有暴露你的靜態文件(CSS,JS)。

This article說明如何使用快遞執行此操作。

這裏是快速上手的代碼(從文章複製粘貼)

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

這樣做是該文件夾公衆暴露在網上。

Express查找相對於靜態目錄的文件,因此靜態目錄的名稱不是該URL的一部分。

+0

謝謝。這是有效的(押韻意圖;)) – Spark

+1

@Spark - 如果你選擇這個解決方案,我很樂意讓你把它標記爲答案。 –