2017-05-22 12 views
4

mvcで角度2アプリを設定しました。 visual studioにtypescript 2.3.1.0を使用しています。 は私がノードモジュールをインストールし、.net mvcを使用したIIS ang 2 appへの公開

2.角度ビューへの参照を追加 - >ホーム - >インデックスファイル -

@{ 
    ViewBag.Title = "Home Page"; 
} 
<div class="jumbotron"> 
    <h1>Angular 2 QuickStart</h1> 
</div> 
<div class="row"> 
    <div class="col-md-4"> 
     <!-- Angular2 Code --> 
     <my-app>Loading...</my-app> 
     <!-- Angular2 Code --> 
    </div> 
</div> 

そして、私は私の見解へのすべての参照を追加 - >共有 - >レイアウトファイル -

<!DOCTYPE html> 
<html> 
<head> 
    <meta charset="utf-8" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0"> 
    <meta name="google-signin-client_id" content="118134028665-i6h833e7irrrhk0n52bgj7ve6fet4vgr.apps.googleusercontent.com"> 
    <title>@ViewBag.Title - My ASP.NET Application</title> 

    @Styles.Render("~/Content/css") 
    @Scripts.Render("~/bundles/modernizr") 

    <!-- Angular2 Code --> 
    <base href="/"> 
    <link rel="stylesheet" href="styles.css"> 
    <!-- Polyfill(s) for older browsers --> 
    <script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=Intl.~locale.en"></script> 
    <script src="https://code.angularjs.org/tools/system.js"></script> 
    <script src="node_modules/core-js/client/shim.min.js"></script> 
    <script src="node_modules/zone.js/dist/zone.js"></script> 
    <script src="node_modules/reflect-metadata/Reflect.js"></script> 
    <script src="node_modules/systemjs/dist/system.src.js"></script> 
    <script src="systemjs.config.js"></script> 
    <script> 
     System.import('app').catch(function(err){ console.error(err); }); 
    </script> 
    <!-- Angular2 Code --> 

</head> 
<body> 
    <script src="~/Scripts/jquery-1.10.2.min.js" type="text/javascript"></script> 
    <script src="~/JS/SocialLogin.js" type="text/javascript"></script> 
    <script src="https://apis.google.com/js/platform.js" async defer></script> 
    <div class="navbar navbar-inverse navbar-fixed-top"> 
     <div class="container"> 
      <div class="navbar-header"> 
      </div> 
      <div class="navbar-collapse collapse"> 
      </div> 
     </div> 
    </div> 
    <div class="container body-content"> 
     @RenderBody() 
     <hr /> 
     <footer> 
      <p>&copy; @DateTime.Now.Year - My ASP.NET Application</p> 
     </footer> 
    </div> 

    @Scripts.Render("~/bundles/bootstrap") 
    @RenderSection("scripts", required: false) 
</body> 
</html> 

これは私のpackage.jsonファイルである -

{ 
    "name": "angular-quickstart", 
    "version": "1.0.0", 
    "scripts": { 
    "start": "tsc && concurrently \"npm run tsc:w\" \"npm run lite\" ", 
    "lite": "lite-server", 
    "postinstall": "typings install", 
    "tsc": "tsc", 
    "tsc:w": "tsc -w", 
    "typings": "typings" 
    }, 
    "license": "ISC", 
    "dependencies": { 
    "@angular/common": "2.0.0", 
    "@angular/compiler": "2.0.0", 
    "@angular/core": "2.0.0", 
    "@angular/forms": "2.0.0", 
    "@angular/http": "2.0.0", 
    "@angular/platform-browser": "2.0.0", 
    "@angular/platform-browser-dynamic": "2.0.0", 
    "@angular/router": "3.0.0", 
    "@angular/upgrade": "2.0.0", 
    "core-js": "^2.4.1", 
    "reflect-metadata": "^0.1.3", 
    "rxjs": "5.0.0-beta.12", 
    "systemjs": "0.19.27", 
    "zone.js": "^0.6.23", 
    "angular2-in-memory-web-api": "0.0.20", 
    "bootstrap": "^3.3.6" 
    }, 
    "devDependencies": { 
    "concurrently": "^2.2.0", 
    "lite-server": "^2.2.2", 
    "typescript": "^2.0.2", 
    "typings":"^1.3.2" 
    } 
} 

のTh

ノードモジュールフォルダがプロジェクトに含まれていません
(function (global) { 
    System.config({ 
    paths: { 
     // paths serve as alias 
     'npm:': 'node_modules/' 
    }, 
    // map tells the System loader where to look for things 
    map: { 
     // our app is within the app folder 
     app: 'app', 
     // angular bundles 
     '@angular/core': 'npm:@angular/core/bundles/core.umd.js', 
     '@angular/common': 'npm:@angular/common/bundles/common.umd.js', 
     '@angular/compiler': 'npm:@angular/compiler/bundles/compiler.umd.js', 
     '@angular/platform-browser': 'npm:@angular/platform-browser/bundles/platform-browser.umd.js', 
     '@angular/platform-browser-dynamic': 'npm:@angular/platform-browser-dynamic/bundles/platform-browser-dynamic.umd.js', 
     '@angular/http': 'npm:@angular/http/bundles/http.umd.js', 
     '@angular/router': 'npm:@angular/router/bundles/router.umd.js', 
     '@angular/forms': 'npm:@angular/forms/bundles/forms.umd.js', 
     // other libraries 
     'rxjs':      'npm:rxjs', 
     'angular-in-memory-web-api': 'npm:angular-in-memory-web-api', 
    }, 
    // packages tells the System loader how to load when no filename and/or no extension 
    packages: { 
     app: { 
     main: './main.js', 
     defaultExtension: 'js' 
     }, 
     rxjs: { 
     defaultExtension: 'js' 
     }, 
     'angular-in-memory-web-api': { 
     main: './index.js', 
     defaultExtension: 'js' 
     } 
    } 
    }); 
})(this); 

、それが正常にビルドし、私が実行したとき、それはOK働いているある - 私のsystemjs.config.jsファイルです。

公開して公開サーバーをdevサーバーに移動してIISに展開すると、mvcは実行されますが、角度2は実行されません。 これらは私が取得エラーです -

Error of angular 2

ノードモジュールフォルダが欠落しているので、私はこのエラーを取得することを前提としています。

私は戻ってプロジェクトに行くと、プロジェクト内のノードモジュールを含む、それを構築する場合、私はこれらのエラーを取得する -

重大度コード説明プロジェクトファイルの行の抑制状態 エラービルド: 「Eファイル:/ MyApp/MyApp/MyApp.Site/node_modules/browser-sync/node_modules/rx/ts/core/linq/observable/mergeproto.ts ' が見つかりません。 MyApp.Site E:\ MyAppを\ MyAppに\ MyApp.Site \

重大度コード説明プロジェクトファイルの行の抑制状態 エラービルドTSC: 「Eファイル:/MyApp/MyApp/MyApp.Site/node_modules/browser-syncを/node_modules/rx/ts/core/linq/observable/zipproto.ts ' が見つかりません。 MyApp.Site E:¥MyApp¥MyApp¥MyApp¥MyApp.Site¥tsc

この問題を解決するにはどうすればよいですか? iisで.net mvcを使用してAngular 2アプリを展開する正しい方法は何ですか? このプロジェクトにノードモジュールを組み込む正しい方法は何ですか?

ありがとうございます!

+0

こんにちはディナ、私は同じ問題に直面しており、さらに進むことができません。あなたはまだ解決策を見つけましたか?あなたが何かを見つけたら教えてください。 –

答えて

1

私も同じ問題に直面しており、適切な解決策を得ていませんでした。 私は別の解決策を使用しました。

  1. IIS上にMVC(API)を配置しないでください。
  2. ng prodを使用して角度2アプリケーションを別途作成します。
  3. Angular 2アプリケーションを展開すると、IIS上の静的Webサイト となります(distフォルダ)。
  4. Angular 2 APIでは、データアクセス用にデプロイされたAPIを使用します。

私にpingエラーが発生した場合。

関連する問題