Aspnet7+docker+React中的SPA重定向错误
创始人
2024-09-20 06:30:29
0
  1. 首先,在Dockerfile中,确保你已经使用的是ASP.NET Core SDK映像(例如:mcr.microsoft.com/dotnet/core/sdk:3.1)而非ASP.NET Core运行时映像。在这种情况下,你需要在Dockerfile中添加以下行来构建React应用程序并将生成文件复制到ASP.NET Core应用程序中:
FROM node AS build
WORKDIR /app
COPY package*.json ./
RUN npm install
COPY . .
RUN npm run build

FROM mcr.microsoft.com/dotnet/core/sdk:3.1
WORKDIR /app
COPY --from=build /app/build ./

ENTRYPOINT ["dotnet", "MyApp.dll"]
  1. 其次,在React应用程序(src/index.js)中使用BrowserRouter而不是HashRouter,并将basename属性设置为应用程序根目录路径:
import React from 'react'
import ReactDOM from 'react-dom'
import { BrowserRouter } from 'react-router-dom'
import App from './App'

const baseUrl = document.getElementsByTagName('base')[0].getAttribute('href')
const rootElement = document.getElementById('root')

ReactDOM.render(
  
    
  ,
  rootElement
)
  1. 最后,在ASP.NET Core中确保使用UseMvcWithDefaultRoute(而不是UseMvc)和MapFallbackToFile:
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
    if (env.IsDevelopment())
    {
        app.UseDeveloperExceptionPage();
    }
    else
    {
        app.UseHttpsRedirection();
        app.UseHsts();
    }

    app.UseStaticFiles();
    app.UseRouting();
    app.UseEndpoints(endpoints =>
    {
        endpoints.MapControllers();
    });

    app.Use(async (context, next) =>
    {
        await next();

        if (context.Response.StatusCode == 404 && !Path.HasExtension(context.Request.Path.Value))
        {
            context.Request.Path = "/index.html";
            await next();
        }
    });

    app.UseMvcWithDefaultRoute();
    app.UseSpa(spa =>
    {

相关内容

热门资讯

第七分钟开挂!皮皮广东游戏辅助... 第七分钟开挂!皮皮广东游戏辅助软件,越乡游义乌辅助器免费试用,微扑克教程-2026最新版本1、打开软...
事发当天!蜀友会通用辅助器(辅... 事发当天!蜀友会通用辅助器(辅助挂)果然是有挂的(有挂攻略)-哔哩哔哩【无需打开直接搜索加薇1367...
七分钟开挂!天天爱柳州辅助,新... 七分钟开挂!天天爱柳州辅助,新九九辅助,必备教程-2026最新版本1、玩家可以在天天爱柳州辅助软件透...
随着!海盗来了刷能量辅助(辅助... 随着!海盗来了刷能量辅助(辅助挂)果然是有挂(有挂项目)-哔哩哔哩;无需打开直接搜索薇:136704...
第2分钟开挂!中至上饶有没有挂... 第2分钟开挂!中至上饶有没有挂车,创思维激k辅助器视频,细节方法-2026最新版本1、很好的工具软件...
围绕透视问题!闲逸免费app辅... 围绕透视问题!闲逸免费app辅助(辅助挂)其实真的是有挂(有挂窍门)-哔哩哔哩1、下载安装好闲逸免费...
第5分钟开挂!赣牌圈靠谱吗,哈... 第5分钟开挂!赣牌圈靠谱吗,哈糖大菠萝辅助器,解密教程-2026最新版本1、哈糖大菠萝辅助器ai机器...
昨日!微信小程序功夫川麻小程序... 昨日!微信小程序功夫川麻小程序辅助(辅助挂)果然确实有挂(有挂资料)-哔哩哔哩>>您好:软件加薇13...
8分钟开挂!乐乐围棋入门辅助,... 8分钟开挂!乐乐围棋入门辅助,茶馆游戏辅助,2025新版-2026最新版本1.乐乐围棋入门辅助 ai...
截至发稿!酷玩联盟辅助(辅助挂... 截至发稿!酷玩联盟辅助(辅助挂)一直是有挂(有挂妙计)-哔哩哔哩;酷玩联盟辅助是一款益智类棋牌手游,...