我在Laravel Mix中使用React Router刷新浏览器时收到错误404

佩恩

我知道有几个帖子有类似的问题,但是不同的方法似乎难以理解。我想学习更多,并能够使用React.js和Laravel开发多个应用程序。

Header.js:导入文件

import React, { Component } from 'react';
import {
    BrowserRouter as Router,
    Link,
    Switch,
    Route
} from 'react-router-dom';
import Home from './Home';
import About from './About';
import Dashboard from '../admins/Dashboard';
import Contact from './Contact';

路由器(BrowserRouter)

<Router>
       <div>
            <nav className="navbar navbar-expand-lg  navbar-dark bg-dark navbar-fixed-top">
            <button className="navbar-toggler" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation">
                <span className="navbar-toggler-icon"></span>
            </button>

            <div className="collapse navbar-collapse" id="navbarSupportedContent">
                <ul className="navbar-nav mr-auto">
                    <li className="nav-item active">
                        <Link className="nav-link"  to="/" exact

                        >Home</Link>
                    </li>
                    <li className="nav-item">
                        <Link className="nav-link" to="/about">About Us</Link>
                    </li>

                    <li className="nav-item">
                        <Link className="nav-link" to="/contact">Contact</Link>
                    </li>
                </ul>
                <form className="form-inline my-2 my-lg-0">
                <input className="form-control mr-sm-2" type="search" placeholder="Search" aria-label="Search" />
                <button className="btn btn-outline-success my-2 my-sm-0" type="submit">Search</button>
                </form>
            </div>
            </nav>
            <Switch>
                    <Route  exact path='/'  component={Home}/>
                    <Route  exact path="/about" component={About}/>
                    <Route  path='/contact' component={Contact}/>
                    <Route  path='/admins/dashboard' component={Dashboard}/>
            </Switch>
       </div>
       </Router>

当我单击链接时,它会显示链接,但是每当我尝试刷新页面时,它就会显示错误。我尝试了可能的示例,但似乎没有任何效果。我不知道我做错了什么。我一直在尝试看看如何解决。我碰到一篇文章说createBrowserHistory已被弃用,而React-router v4不支持它,即使我在努力实现该示例也是如此。有更好的解决方案吗?

我有多个页面(组件)。

Index.js

import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import {
    BrowserRouter as Router,

} from 'react-router-dom';
import Header from './Header';
import Footer from './Footer';



export default class Index extends Component {

    render() {
        return (
            <div>
                <Header />

                <Footer/>
            </div>
        );
    }
}

if (document.getElementById('app')) {
    ReactDOM.render(<Index />, document.getElementById('app'));
}

about.js

import React, { Component }from 'react';
import { Redirect } from 'react-router-dom';
class About extends Component {

    constructor(props)
    {
        super(props);
    }

    render(){
        return (
            <div className="jumbotron">
                <h2>About Us</h2>
            </div>
        );
    }
}



export default About;

app.js

/**
 * First we will load all of this project's JavaScript dependencies which
 * includes React and other helpers. It's a great starting point while
 * building robust, powerful web applications using React + Laravel.
 */

require('./bootstrap');

/**
 * Next, we will create a fresh React component instance and attach it to
 * the page. Then, you may begin adding components to this application
 * or customize the JavaScript scaffolding to fit your unique needs.
 */

require('./components/Index');

在此处输入图片说明

阿卜杜卡比尔·奥尤拉利(Abdulkabir Ojulari)

出于知识的缘故,我认为您在整个事情上做错了。您的index.js需要从“ react-router-dom”中包括import {BrowserRouter,Switch,Route},并将您的路由定义在BrowswerRouter的定位标记内,即

import React, { Component } from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter, Route, Switch } from 'react-router-dom'
import Header from './Header';
import Footer from './Footer';
import Home from './Home';
import About from './About';
import Dashboard from '../admins/Dashboard';
import Contact from './Contact';


    export default class Index extends Component {

        render() {
            return (
                <BrowserRouter>
                    <div>
                   <Header/>
                    <Switch>
                        <Route  exact path='/'  component={Home}/>
                        <Route  exact path='/about' component={About}/>
                        <Route  path='/contact' component={Contact}/>
                        <Route  path='/admins/dashboard' component={Dashboard}/>
                    </Switch>
                   <Footer/>
                </div>
                </BrowserRouter>

            );
        }
    }

    if (document.getElementById('app')) {
        ReactDOM.render(<Index />, document.getElementById('app'));
    }

由于这是一个Laravel Mix,预设了reactjs,因此请转到您的路由下的web.php,以更改为Route :: view('/ {path?}','welcome'); 这意味着您将视图限制为页面,但从视图中渲染了多个组件。

在您的welcome.blade.php中,请确保避免使用绝对路径,而应使用类似如下的内容:href =“ {{asset('css / app.css')}}”

在您的Header.js中,删除不必要的导入文件。从“ react-router-dom”导入{Link};

如果您在了解安排方面遇到任何挑战,可以发送完整的header.js,welcome.blade.php等以寻求帮助

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

使用React和Laravel Mix时出错

错误,当我使用 Selenium C# 初始化 IE 浏览器时

我在laravel中使用dingo / api,但总是404错误

我通过GAE中的servlet从Google API收到404错误,但通过浏览器获得了正确的响应

我想在React中的网页中使用嵌入式浏览器

当我在ubuntu的摇摆代码中使用DJ浏览器时遇到libwebkitgtk的问题

在代客安全站点SSL错误中使用laravel-mix进行Webpack热加载

当我在 webpack 中使用 react router 时,它显示错误“React.createElement: type is invalid”

如何在Laravel Mix中使用提取和代码拆分进行React

我无法从Parse Dashboard上传PFFile(图像),当我的解析服务器使用https尝试在浏览器中访问它时,我得到404

使用gulp开发时刷新浏览器的缓存

如何在Laravel Mix中使用纱线

我可以在浏览器中使用nodemailer吗?

我可以在浏览器要求中使用通配符吗?

我的轮播图片不会显示在滑块上。我在浏览器上收到“ GET local_image_path 404(未找到)”错误

我的angularjs控制器接收到HTTP 303时如何更新我的浏览器

我如何在Laravel / Eloquent中使用Carbon时“计数”

我在操作中使用 url 并得到 404 not found 但路由存在,当我使用路由时,我得到错误路由未在 Laravel 中定义

当我在浏览器中使用0.0.0.0而不是localhost时,Chrome /服务器会做什么?

当我使用POSTMAN对golang api进行POST请求时,我成功地将jwt令牌作为cookie接收到,但是当我从浏览器中获取时,没有得到cookie

当用户使用我的网站时,如何在用户浏览器中使用php启用cookie

在我的代码中使用LISTAGG时收到错误

我正在尝试修复使用 Gulp 4 时的参考错误,它不会观看我的 sass 或在浏览器中显示更改

当我使用Ajax发布表单时,laravel收到HttpException错误

当仅在我的一个浏览器中使用代理时,cookie的安全性如何?

如何在 Laravel 8 中使用 pagination() 函数时更正浏览器中分散的分页链接和对象视图

我在邮递员和浏览器中收到500错误,但在调试时控制器返回的对象正确

使用地理定位时,我的浏览器不会提示我访问位置

在浏览器上点击刷新后进行React Router v4登录检查