2017-10-21 2 views
0

私はnodejsアプリケーションで作業しています。私たちはUiルータを使用してシングルページアプリケーションを実装しました。ノードスクリプトをロードするノードjsにコントローラを作成しました。私は、コンソールにエラーが発生しましたびに"angular.js:8081 GET http://localhost:2405/Views/Partials/Know-me.html 404 (Not Found)" を言った、私はUIルータに定義されたルートthrought移動しようとした私は、これはいくつかのコードで問題に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

を - スクリプト

は---

+0

を追加してください。あなたのtemplateUrlのパスの始めに。 templateUrl: './Know-me-amir.html'。うまくいかない場合は、プロジェクトの構造を教えてください。 –

+0

プロジェクト@AnassAnasの構造を追加しました –

答えて

1
をangular_app.js ----

をangular_js

問題は次のとおりです。 ejsファイルがサーバー上でレンダリングされます。 AngularJS(クライアント)が 'Views/Partials/Know-me.html'を取得しようとしています。クライアントの観点から見ると、このhtmlは存在しません。

は、次の手順を実行してください。

  1. は、パブリックフォルダを追加します。
  2. はexpress.static()
  3. このディレクトリにhtmlファイルを移動して、パブリックフォルダをサーブ:公共/ビュー/パーシャル/ノウハウme.html http://localhost:2405/Views/Partials/Know-me.htmlにアクセスするための
  4. てみてください - あなたが知っている内容を参照してください場合を - 私 - あなたは行き​​たいです!

クライアントは、asyncronislyロードされたhtmlファイルを見つけます。

関連する問題