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();

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

  • 相关阅读:
    流光shader 和 流光+扭曲shader
    unity3d android动态更新dll
    Shader之溶解效果的几种实现方法
    我的第一个法线贴图
    windows 函数
    MFC 消息框
    C++ MFC棋牌类小游戏day1
    C++STL 预定义函数对象和函数适配器
    C++STL 函数对象和谓词
    C++STL 算法
  • 原文地址:https://www.cnblogs.com/duanjt/p/15629303.html
Copyright © 2011-2022 走看看