我将 Angular2 应用程序与我的 asp.net MVC 核心 Web 应用程序分开。如果你愿意,你可以将它们放在你的 MVC 应用程序中,这是你个人的决定是否将它们分开,这个解决方案适用于 angular-cli 或 web-pack。
1- 使用 angular-cli(ng new your-app-name) 或从 Git 克隆您的 web-pack。
2- 在您的解决方案上创建一个新的类库,或者您可以在现有的 ASP.Net MVC Core 项目中创建一个文件夹。然后复制上一步下载的所有文件。
3- 找到 .angular-cli.json 并编辑“outDir”。您需要输入您的 MVC Core wwwroot 文件夹。
"apps": [
{
"root": "src",
"outDir": "../Web.UI/wwwroot/app" //!if you separated your angular app from your MVC project,
"outDir": "../wwwroot/app" //!if you have your angular and mvc app in a same project,
"assets": [
"assets"
],
"index": "index.html",
"main": "main.candidate.ts",
"polyfills": "polyfills.ts",
"test": "test.ts",
"tsconfig": "tsconfig.app.json",
"testTsconfig": "tsconfig.spec.json",
"prefix": "app_andidate",
"styles": [ "share/css/material.scss" ],
"scripts": [],
"environmentSource": "environments/environment.ts",
"environments": {
"dev": "environments/environment.ts",
"prod": "environments/environment.prod.ts"
}
}
}
4- 打开一个命令并进入您的 Angular 目录或项目,并使用此命令将您的 Angular 发布到 MVC wwwroot/app 目录。
5- 您可以使用此命令在调试模式下发布您的应用。
ng build --dev
以及此命令以发布模式发布您的应用
ng build --output-hashing none --prod --aot
6- 在你的 MVC 控制器中创建一个动作。
我创建了一个名为 AppController 的控制器,我的 views/App/Index.cshtml 是这样的。
@section Heads{
<base href="/App/Index/">
}
@section Scripts{
<script type="text/javascript" src="/app/inline.bundle.js"></script>
<script type="text/javascript" src="/app/polyfills.bundle.js"></script>
<script type="text/javascript" src="/app/vendor.bundle.js"></script>
<script type="text/javascript" src="/app/main.bundle.js"></script>
}
<app-root>Loading...</app-root>
如果需要,您可以使用您的 views/Home/Index.html 来托管您的 Angular 应用程序。
为了避免使用命令,我创建了 2 个 .bat 文件
1 - DebugBuild.bat
%cd%
ng build --dev
2 - ReleaseBuild.bat
%cd%
ng build --output-hashing none --prod --aot
现在您可以简单地对 .bat 文件进行 dbclick 来发布您的 Angular 应用程序。
您还可以使用 ng serve 或 npm start 命令从 angular 目录运行 Angular 应用程序。