reactjs - 404 与我无法在本地重现的 React 路由器
问题描述
我是 React 的新手,我必须修复一个小型静态站点上的错误,当我访问:https ://sunchain.fr/en
它会给我一个 404 (我的页面托管在 gitlab 页面上,所以你的 404 有 gitlab 标志)
但是当我去http://localhost:3000/en时,它可以工作。
这是我定义链接的文件:
import React from "react";
import PropTypes from "prop-types";
import {Link} from "react-router-dom";
import "./style.css";
import logo from "../../media/svg/_LOGO_CONTOUR_BLANC.svg";
export const Header = ({
linklogo,
concept,
autoconso,
techno,
appli,
team,
news,
language
}) => (
<div className="header">
<div className="wrapper-header">
<a href={linklogo} id="logo" className={logo}>
</a>
<nav>
<ul>
{concept}
{autoconso}
{techno}
{appli}
{team}
{news}
{language}
</ul>
</nav>
</div>
</div>
);
Header.propTypes = {
concept: PropTypes.object,
autoconso: PropTypes.object,
techno: PropTypes.object,
appli: PropTypes.object,
team: PropTypes.object,
news: PropTypes.object,
language: PropTypes.object
};
export default Header;
export const HeaderFr = props => (
<Header
{...props}
linklogo="/"
concept={
<a href="/#concept">
<li>CONCEPT</li>
</a>
}
autoconso={
<a href="/#autoconsocoll">
<li>AUTOCONSO</li>
</a>
}
techno={
<a href="/#techno">
<li>TECHNO</li>
</a>
}
appli={
<a href="/#appli">
<li>APPLICATIONS</li>
</a>
}
team={
<a href="/#team">
<li>ÉQUIPE</li>
</a>
}
news={
<a href="/#news">
<li>ACTUALITÉS</li>
</a>
}
language={
<Link to="/en">
<li className="lang">ENGLISH</li>
</Link>
}
/>
);
export const HeaderEn = props => (
<Header
{...props}
linklogo="/en"
concept={
<a href="/en#concept">
<li>CONCEPT</li>
</a>
}
autoconso={
<a href="/en#autoconsocoll">
<li>USE CASE</li>
</a>
}
techno={
<a href="/en#techno">
<li>TECHNO</li>
</a>
}
appli={
<a href="/en#appli">
<li>APPLICATIONS</li>
</a>
}
team={
<a href="/en#team">
<li>TEAM</li>
</a>
}
news={
<a href="/en#news">
<li>NEWS</li>
</a>
}
language={
<Link to="/">
<li className="lang">FRANÇAIS</li>
</Link>
}
/>
);
我也这样定义了我的路线:
<Route history={browserHistory} path="/en">
<HomeLayoutEn />
</Route>
<Route history={browserHistory} exact path="/">
<HomeLayoutFr />
</Route>
两个版本相同,因为我使用持续部署将其发送到生产环境
任何想法 ?
解决方案
好吧,当我导航到https://sunchain.fr/时,它加载得很好。然后选择“英语”转到https://sunchain.fr/en/也可以。问题是在此页面上执行硬重新加载将 404。
我怀疑这个问题与此类似。您的应用程序路由无法在刷新时持续存在,您可能会在此处找到明确的解释/修复。
推荐阅读
- java - 带有 GUI 的 Java 无法运行
- c# - 创建一个通用列表
功能 - c# - 如何在 C# 中使用 keybd_event 按住键
- laravel-5 - 谷歌云计算引擎上的 Laravel - 找不到驱动程序
- java - Spring MVC 在控制器之前获取 POST 主体
- python - 在 azure 门户中看不到对我的 azure 应用程序清单的更改
- python - 将路径列表传递给另一个函数
- karate - 空手道加特林项目 - AbstractMethodError
- apache-spark - 如果有很多字段,如何让 pyspark 显示整个查询计划而不是...?
- java - LazyInitializationException : 为什么 Hibernate 不能在延迟加载时创建会话?