我可以在我的网站上找到根路线并导航到不同的页面,没有网址中的“/#/”。但是当我刷新时,它会给我404页面。
例如,Unresponsive landing page。如果你进入投资组合页面,网址中没有哈希,一切似乎都很好。网址为https://kaisinlipersonal.herokuapp.com/。但是如果您在投资组合页面上刷新,https://kaisinlipersonal.herokuapp.com/portfolio会给出404.所有其他页面都相同。
知道为什么会这样吗?
我的路线档案:
import React from 'react';
import { IndexRoute, Router, Route, browserHistory } from 'react-router';
import Main from './components/Main';
import Home from './components/Home';
import Portfolio from './components/Portfolio';
import Contact from './components/Contact';
import Blog from './components/Blog';
export default (
<Router history={browserHistory}>
<Route path='/' component={Main}>
<IndexRoute component={Home}/>
<Route path='/portfolio' component={Portfolio} />
<Route path='/blog' component={Blog} />
<Route path='/contact' component={Contact} />
</Route>
</Router>
);
我使用的反应路线是版本3.
答案 0 :(得分:1)
哈希(https://kaisinlipersonal.herokuapp.com/#hash
)由客户端处理。服务器甚至不知道哈希是什么。
这意味着https://kaisinlipersonal.herokuapp.com/#hash
实际上是对https://kaisinlipersonal.herokuapp.com/
的请求。这就是您的索引页面所在的位置。
当您请求https://kaisinlipersonal.herokuapp.com/profile
时,您不再加载索引页面。但是您需要加载索引页面,因为它必须处理URL。
因此,为了解决这个问题,您需要告诉服务器将所有请求重定向到/
索引文件。
不幸的是,我没有使用Python / Flask的经验(我相信你使用它作为你的个人资料的服务器),但应该有一些方法可以使用该框架。