Ui路由器找不到Nodejs的视图

时间:2017-10-21 10:44:41

标签: node.js angular-ui-router

我正在使用nodejs应用程序,我们使用Ui路由器来实现单页面应用程序,我在节点js中创建控制器,加载具有角度脚本和库的Layout,然后我尝试浏览我定义的路径在ui路由器中,每次我在控制台中收到错误时都说 "angular.js:8081 GET http://localhost:2405/Views/Partials/Know-me.html 404 (Not Found)" 我无法指定问题

这是一些代码:

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

--- Partials

---- know-me.html

- 脚本

--- angular_js

---- angular_app.js

1 个答案:

答案 0 :(得分:1)

问题是: ejs文件在服务器上呈现。 AngularJS(客户端)尝试获取 “查看/局部模板/技能me.html”。从客户的角度来看,这个HTML不存在。

请执行以下操作:

  1. 添加公用文件夹。
  2. 使用express.static()
  3. 提供公用文件夹
  4. 将html文件移至此目录:public / Views / Partials / Know-me.html
  5. 尝试访问http://localhost:2405/Views/Partials/Know-me.html - 如果你看到了我的内容 - 你很高兴!
  6. 现在您的客户端将找到asyncronisly加载的html文件。