gpt4 book ai didi

asp.net - 带有 Asp.net 核心的 react 路由器

转载 作者:行者123 更新时间:2023-12-01 23:21:23 26 4
gpt4 key购买 nike

我正在尝试将 React 路由器与 asp.net 核心一起使用。问题是我无法访问博客组件。

这是错误:Failed to load resource: the server responded with a status of 404 (Not Found)
这是我的代码:

webpack.config.js

    const path = require('path');
const webpack = require('webpack');
module.exports = {
entry: { 'main':'./Client/index.js'},
output: {
path:path.resolve(__dirname,'wwwroot/dist'),
filename: 'bundle.js',
publicPath: 'dist/'
},
watch: true,
mode: 'development',
module: {
rules: [
{test: /\.css$/, use: [{ loader: "style-loader" },
{ loader: "css-loader" }]},
{ test: /\.js?$/,
use: { loader: 'babel-loader', options: { presets:
['@babel/preset-react','@babel/preset-env'] } } },
]
}
}

index.js 来自客户端。我完全知道 asp.net 核心有反应应用程序的模板。我只是不喜欢使用 typescript

index.js
    import React from 'react';
import ReactDom from 'react-dom';
import { createStore,applyMiddleware } from 'redux'
import { Provider } from 'react-redux'
import ReduxPromise from 'redux-promise'
import reducers from './reducers';
import Blog from './components/Blog';
import NavBar from './components/NavBar';
import { BrowserRouter,Route } from 'react-router-dom'
import './style/index.css'
import App from './components/App';
const store = applyMiddleware(ReduxPromise)(createStore);
ReactDom.render(
<Provider store={store(reducers)}>
<BrowserRouter>
<div>
<NavBar/>
//Can't access this Component
<Route exact path='/blog' component={Blog}/>
</div>
</BrowserRouter>
</Provider>
,document.getElementById('react-app')
)

启动.cs
    using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.AspNetCore.SpaServices.Webpack;
namespace server
{
public class Startup
{
// This method gets called by the runtime. Use this method to add services to the container.
// For more information on how to configure your application, visit https://go.microsoft.com/fwlink/?LinkID=398940
public void ConfigureServices(IServiceCollection services)
{
services.AddMvc();
}

// This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
app.UseWebpackDevMiddleware(new WebpackDevMiddlewareOptions
{
HotModuleReplacement = true,
ReactHotModuleReplacement = true
});
}
app.UseStaticFiles();
app.UseMvc(routes =>
{
routes.MapRoute(
name: "default",
template: "{controller=Home}/{action=Index}/{id?}");
});
}
}
}

最佳答案

原来,我只需要将它添加到 启动.cs

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

关于asp.net - 带有 Asp.net 核心的 react 路由器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49354225/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com