繁体   English   中英

Angular 4 CLI生成的项目,与Asp.Net Core问题集成

[英]Angular 4 cli generated project, integration with Asp.Net Core issue

我面临将问题4 cli项目与Asp.Net核心项目集成到Visual Studio 2017中的问题。

这是我已采取的步骤。

  1. 使用> ng new shoppingcart创建了angular4项目
  2. 在shoppingcart文件夹中,我使用> dotnet new webapi创建了一个Dot net Web API项目。

  3. 在Visual Studio 2017中打开了dot new项目,并将.angular-cli.json中的outDir条目更改为“ outDir”:“ wwwroot”。

  4. 添加了一个名为app.service.ts的服务,并调用了Web api控制器。

  5. 从Visual Studio中运行该应用程序,然后浏览器打开。 它显示http:// localhost:6353 /并显示错误404。

现在,如果我输入“ http:// localhost:6353 / values” ,那么我会得到由values控制器返回的值,这是可以理解的。

但是,我的问题是这些:

a)应该在src文件夹下显示index.html(通过将其复制到wwwroot文件夹),但不显示。 结果,整个打字稿逻辑没有得到执行。 b)应该使浏览器显示相同的索引.html,但不会。

你能帮助我吗?

这是我的

.angular-cli.json文件。

  {
  "$schema": "./node_modules/@angular/cli/lib/config/schema.json",
  "project": {
  "name": "shopping-cart"
 },
 "apps": [
  {
  "root": "src",
  "outDir": "wwwroot",
  "assets": [
    "assets",
    "favicon.ico"
  ],
  "index": "index.html",
  "main": "main.ts",
  "polyfills": "polyfills.ts",
  "test": "test.ts",
  "tsconfig": "tsconfig.app.json",
  "testTsconfig": "tsconfig.spec.json",
  "prefix": "app",
  "styles": [
    "styles.css"
  ],
  "scripts": [],
  "environmentSource": "environments/environment.ts",
  "environments": {
    "dev": "environments/environment.ts",
    "prod": "environments/environment.prod.ts"
  }
 }
],
  "e2e": {
  "protractor": {
  "config": "./protractor.conf.js"
  }
 },
 "lint": [
{
  "project": "src/tsconfig.app.json",
  "exclude": "**/node_modules/**"
},
{
  "project": "src/tsconfig.spec.json",
  "exclude": "**/node_modules/**"
},
{
  "project": "e2e/tsconfig.e2e.json",
  "exclude": "**/node_modules/**"
}
],
"test": {
 "karma": {
  "config": "./karma.conf.js"
  }
 },
 "defaults": {
  "styleExt": "css",
  "component": {}
 }
}

我的整个项目都在github上,链接是: angular4和Dot net core购物车

我已经按照这个例子

源示例

但是,当我从Visual Studio运行(或通过Dotnet run)运行时,浏览器中没有打开索引页面。 因此,任何帮助将不胜感激。

如您所见,我的项目结构没有被复制,而main.js,polyfills.js和test.js之类的文件被复制到src文件夹下。

项目结构

我已经解决了这个问题。 我更改了在配置方法的startup.cs中添加以下代码

app.Use(async (context, next) =>
  {
    await next();
    if (context.Response.StatusCode == 404 &&
      !context.Request.Path.Value.StartsWith("/api/"))
    {
      context.Request.Path = "/index.html";
      await next();
    }
  });

之前是wwwroot / index.html。 现在一切正常。 当我通过dotnet run命令运行项目时,所有角度4功能均可用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM