zoukankan      html  css  js  c++  java
  • Angular程序发布到.net core的wwwroot目录下

    背景:

    公司开发了一个小型系统,采用.net core3.1+angular12进行开发,开发完成后就是两套程序,一个前端和一个后端。
    按照传统的方式就是将前端发布到Nginx,后端发布到IIS。但是咱们这只是一个很小的小项目,完全没必要发布两个站点,因此想要将Angular打包后的程序放到.net core的wwwroot目录下进行访问。
    思路没有问题,但是由于Angular自己有一套路由机制,如果使用http://ip:port/login这样的路由,就会出现404错误。

    解决方案:

    在.net core中增加一个中间件,当没有找到资源时就重定向到index.html上,从而保证兼容Angular自定义的路由,类似于Nginx的“try_files”。.net core核心代码如下:

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

     感谢公司热心同事王彧提供的整体思路和示例代码。

  • 相关阅读:
    第二个冲刺 6.3.4.学术诚信与职业道德
    第二个冲刺 Sprint
    css之清除浮动
    style和getComputedStyle(ff)和currentStyle
    php 中间件
    Vue 和 angular
    img 分区响应图
    PHP composer
    php实现文件上传,下载的常见文件配置
    php 命名空间
  • 原文地址:https://www.cnblogs.com/duanjt/p/15629303.html
Copyright © 2011-2022 走看看