2017-10-21 119 views
0

我正在研究nodejs应用程序,我们使用Ui路由器来实现单页面应用程序,我创建了节点js中的控制器,它加载了包含角度脚本和库的Layout,然后我试图转到throught我在UI路由器定义的路线,每个我得到了在控制台中的错误表示"angular.js:8081 GET http://localhost:2405/Views/Partials/Know-me.html 404 (Not Found)" 我不能指定问题Ui路由器找不到Nodejs的视图

这个时候是一些代码:

控制器的NodeJS

app.get("/",function(req , res){ 
    res.render("Template.ejs"); // this is the layout 
}); 

布局脚本:

<script src="http://code.angularjs.org/1.2.13/angular.js"></script> 
<script src="//cdnjs.cloudflare.com/ajax/libs/angular-ui-router/0.2.8/angular-ui-router.min.js"></script> 
<script src="../../angular_js/app_angular.js"></script> 

和app_angular脚本:项目

var appmodule = angular.module('mainApp',[ui.router]); 

appmodule.config(function($stateProvider , $urlRouterProvider , $locationProvider){ 
    $urlRouterProvider.otherwise('/things'); 

    $stateProvider 
    .state('me',{ 
     url : '/me', 
     templateUrl : '/Views/Partials/Know-me.html' 
    }) 
    .state('amir',{ 
     url : '/amir', 
     templateUrl : '/Know-me-amir.html' 
    }); 
    //$locationProvider.html5Mode(true); 
}); 

结构:

- 查看

---共享

- --- Temaplte.ejs

---局部模板

----知识me.html

- 脚本

--- angular_js

---- angular_app.js

+0

尝试添加一个。在你的templateUrl的路径的开始。 templateUrl:'./Know-me-amir.html'。如果它不起作用,你能告诉我们你的项目结构吗? –

+0

我添加了项目@AnassAnas的结构 –

回答

1

问题是: ejs文件在服务器上呈现。 AngularJS(客户端)试图获取 'Views/Partials/Know-me.html'。从客户的角度来看,这个html不存在。

请执行下列操作:

  1. 添加一个公用文件夹。
  2. 服务大众文件夹express.static()
  3. 移动HTML文件到这个目录:公共/查看/局部模板/技能me.html
  4. 尝试访问http://localhost:2405/Views/Partials/Know-me.html - 如果你看看就知道的内容 - 我 - 你很好走!

现在您的客户端将会找到asyncronisly加载的html文件。