html - 如何修复 reactjs 中的页面刷新问题
问题描述
当我点击 F5 / 刷新网页时,我在由 apache 2.2 托管的反应应用程序上收到 404 not found 错误
我正在使用 react 引导带和路由运行 reactjs
我已经看到在线 ppl.htaccess
在公用文件夹中添加了一个文件,然后构建了应用程序,但这对我不起作用
import './App.css';
import { BrowserRouter as Router,
Route,
Link,
Switch,
Redirect
} from 'react-router-dom';
import Home from './components/Home';
import Test from './components/Test';
import Test1 from './components/Test1';
class App extends Component {
render() {
return (
<Router>
<div>
<Navbar />
<Switch>
<Route exact path="/" component={Home} />
<Route exact path="/home" component={Home} />
<Route exact path="/test" component={Test} />
<Route exact path="/test1" component={Test1} />
<Route component={NoMatch} />
</Switch>
</div>
</Router>
);
}
}
export default App;
解决方案
我们遇到了这个问题,我们使用了以下设置:
<VirtualHost *:8080>
ServerName example.com
DocumentRoot /var/www/httpd/example.com
<Directory "/var/www/httpd/example.com">
...
RewriteEngine on
# Don't rewrite files or directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Rewrite everything else to index.html to allow html5 state links
RewriteRule ^ index.html [L]
</Directory>
</VirtualHost>
我们从这里得到了这个配置。
推荐阅读
- java - 一个类是否持有对其字段对象的引用?
- c# - Rx.Net - 将函数变量转换为 Observable 流
- sql - 没有分组的listagg函数
- jenkins - 如何找出从 msbuild 添加到 /bin 的 dll 的来源?
- javascript - 未捕获的类型错误:无法读取未定义的属性“道具”(reactjs)(非常简单)
- r - Dplyr 给出错误的结果
- python - 如何在pygame中连续循环KEYDOWN?
- javascript - 如何为 node.js 控制台获取更多颜色
- angular - angular4 在 npm json2excel 的配置文件 tsconfig.ts 中找不到输入
- r - 网络中隐藏层的大小(h2o 中的网格)