部署 Angular 6 ASP.NET Core 应用程序

2024-05-01

我开发了一个 asp.net core 2.0 MVC 应用程序,并添加了 Angular 6 前端应用程序。它们都存在于同一项目结构中。 asp.net core 应用程序充当客户端 Angular 6 应用程序的 API。

我一直在并行开发它们,并在 Startup.cs 文件中包含以下代码段,以便在两个应用程序运行时进行开发:

ConfigureServices
      services.AddSpaStaticFiles(configuration => {
        configuration.RootPath = "ClientApp/dist";
      });

Configure
      app.UseSpa(spa => {
        spa.Options.SourcePath = "ClientApp";

        if (env.IsDevelopment()) {
          spa.UseAngularCliServer(npmScript: "start");
        }
      });

Angular 应用程序的项目结构可以在以下位置找到客户端应用程序.

我知道希望将此项目部署到 IIS。所以我正在离开开发环境,所以我知道代码行:spa.UseAngularCliServer(npmScript: "start");不会被运行。

当我通过 Visual Studio 发布项目并将其移至 inetpub 文件夹(就像对其他应用程序所做的那样)时,它不会提供我在 Angular 6 应用程序中开发的页面。当尝试访问我在 Angular 6 应用程序的 RoutingModule 中定义的页面(例如 /Home)时,我收到 500 内部服务器错误。

我认为这是因为我需要构建 Angular 应用程序(我可以通过ng build --prod)并将编译好的 JS 文件添加到 HTML 页面中。但我不确定该怎么做。如果有人有任何相关网页的链接,我们将不胜感激。或者如果您可以提供任何非常有帮助的见解。

更新#1:

在 Startup.cs 文件中,我使 app.UseDeveloperExceptionPage() 在生产模式下运行时可用。

我得到的不是 500 内部服务器错误页面,而是异常:SPA 默认页面中间件无法返回默认页面“/index.html”,因为找不到该页面,并且没有其他中间件处理该请求。

我还注意到发布后 ClientApp/dist 文件夹不存在。我手动构建了 ClientApp 并将其添加到 inetpub 中的应用程序中。现在,我在控制台中收到错误:

runtime.a66f828dca56eeb90e02.js:1 Uncaught SyntaxError: Unexpected token <

polyfills.7a0e6866a34e280f48e7.js:1 Uncaught SyntaxError: Unexpected token <

Request:10 Resource interpreted as Stylesheet but transferred with MIME type text/html: "http://localhost:8080/styles.169e0a841442606822c8.css".

scripts.ee7fed27c36eaa5fa8a9.js:1 Uncaught SyntaxError: Unexpected token <

main.befe6f4d3c1275f2e1b3.js:1 Uncaught SyntaxError: Unexpected token <

您需要使用此代码ASP.NET 核心 2.0,不是你正在使用的。我的应用程序是使用这种方法发布的。

        app.UseMvc(routes =>
        {
 //Remove this if you don't need it
            routes.MapRoute(
                name: "default",
                template: "{controller=Home}/{action=Index}/{id?}");

            routes.MapSpaFallbackRoute(
                name: "spa-fallback",
              defaults: new { controller = "Home", action = "SPAIndex" }); // For SPA 
        });

您的 HomeController 中需要有一个返回视图的操作。 视图的代码是

<app asp-prerender-module="ClientApp/dist/main-server">Loading...</app>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

部署 Angular 6 ASP.NET Core 应用程序 的相关文章

随机推荐

  • 如何将 datetime64 数组转换为 int?

    有了这个 pd Timestamp 31 12 1999 23 59 12 value gt gt 946684752000000000 我可以获得日期时间基本值的整数值 如何对日期时间值数组完成此操作 df pd DataFrame a
  • 当我在浏览器中访问 Google 或 Google App Engine 等网站时,Google Cloud SDK 出现网络连接问题

    我在 Google App Engine 上创建了一个帐户 然后通过 gcloud init 安装了 google cloud sdk 并收到以下错误 Pick configuration to use 1 Re initialize th
  • 当点击 JButton 连接到服务器时,程序冻结

    我正在使用 Java 中的 TCP 进行简单的 1v1 私人聊天 目前 每当我使用 JButtons 时都会遇到问题 这是我第一次尝试使用 JButtons 和 ActionListeners 所以我不能 100 确定这里发生了什么 我有两
  • SQL查询;水平到垂直

    我遇到了涉及将水平行转换为垂直行的 SQL 查询 SQL Server 以下是我的数据 No Flag 1 Flag 2 Flag 3 A 1 2 3 B 4 1 6 转换后 该表应为 No FlagsName Flag value A F
  • 致命错误:发送表单时未找到“App\Http\Controllers\Input”类

    我正在尝试发送一封包含来自 Laravel 应用程序的表单的电子邮件 当你点击提交时 它会抛出上述错误 致命错误 找不到类 App Http Controllers Input 不知道为什么 因为我没有 也不知道我需要有一个输入控制器 或者
  • 三.JS Shadow 到对象

    我想添加castShadow and receiveShadow在一个物体上 但是下面的代码有什么问题吗 var mtlLoader new THREE MTLLoader mtlLoader setPath objects Tree mt
  • python 中的 fiona 导入问题

    我已经使用whl发行版安装了fiona 但是在导入时我收到以下错误 ImportError Traceback most recent call last
  • 在 Kali (Debian) 中安装 mono-devel 时,软件包具有未满足的依赖关系

    我尝试安装 mono devel 并输入sudo apt get mono devel在终端中 但失败了 得到以下结果 apt get install mono devel Reading package lists Done Buildi
  • Fabric JS ClipPath:裁剪后如何使图像适合画布?

    我使用 FabricJS 和 ClipPath 属性实现了图像裁剪 问题是如何使裁剪后的图像适合画布 我希望裁剪后的图像填充画布区域 但不知道是否可以使用 Fabric js 来完成 因此 我希望用户单击 裁剪 按钮后图像的选定部分适合画布
  • 并发用户和多个观察者

    我知道已经有a thread https stackoverflow com questions 14307341 how exactly are concurrent users determined for a firebase app
  • Graylog2-如何将日志保留配置为 1 周

    我们正在使用一些 Graylog2 服务器 graylog server 版本 1 3 4 因为我们收到太多的日志消息 所以需要大量的内存 我正在尝试将日志保留时间减少到 1 周 所有超过 1 周的日志消息都将被删除 但是 我无法在配置文件
  • typo3 extbase:验证表单

    我创建了一个简单的 订阅新闻通讯 表单
  • Java 工具创建的 WSDL 文件的 WCF 序列化问题

    我的团队的任务是让几个内部开发的 NET 客户端应用程序连接到一些新的 Java Web 服务 Java Web 服务是第三方 供应商提供的 WSDL 文件 我们的团队修改 控制的能力有限 这意味着我们可能有权要求我们的供应商对 WSDL
  • 根据索引查找金字塔的行?

    给定一个像这样的金字塔 0 1 2 3 4 5 6 7 8 9 并给出金字塔的索引i where i代表i金字塔的第一个数字 有没有办法找到金字塔的行的索引i第一个元素属于 例如 如果i 6 7 8 9 它位于第 3 行 从第 0 行开始
  • SerializationException:未解析成员“...”的类型

    我一直在尝试将程序集动态加载到 AppDomain 我需要这样做 因为我想动态调用一个方法 但在我的应用程序运行时不要保留 DLL 的句柄 以便在需要时可以替换它 但我收到此 SerializationException 异常 成员 的类型
  • Javascript查找伪元素

    所以我一直在努力CSS 选择器引擎 https github com alpha123 Puma 并且我想支持伪元素 before after selection first line 等 我注意到 Slick Sizzle 和其他一些流行
  • Linux 上的最大子进程数

    下面的代码将产生尽可能多的子级 自己不会进一步fork 一旦父进程退出就会变成僵尸 父进程将产生多少个子进程 int main int argc char arg while fork gt 0 子进程的数量可以通过以下方式限制设置限制 2
  • 单视图布局文件:编译器是否使用布局/视图组自动换行?

    如果我有一个只包含一个布局文件TextView 我可以毫无问题地从内部充气它activity 但是 如果我尝试膨胀一个包含单个自定义视图的类似布局文件 那么我会得到一个通货膨胀例外 在这种情况下 我可以获得自定义视图来膨胀的唯一方法是将其包
  • PlantUML 活动图 返回

    我正在使用 PlantUML 创建活动图 我想要从里面出来的箭头Modify Details回到OP2而不是钻石 我有这个图 startuml Swimlane1 start OP1 Swimlane2 OP2 if Form Valid
  • 部署 Angular 6 ASP.NET Core 应用程序

    我开发了一个 asp net core 2 0 MVC 应用程序 并添加了 Angular 6 前端应用程序 它们都存在于同一项目结构中 asp net core 应用程序充当客户端 Angular 6 应用程序的 API 我一直在并行开发