2

React-router 似乎无法处理通过本地文件协议运行的任何内容。

它将 file:// 之后的第三个斜杠解释为路由。

因此,如果您创建一个应用程序并尝试从 file:///C:/myapp.html 运行它

它认为您正在尝试访问路由 /C:/myapp.html 并引发错误说

“警告:位置“/C:/myapp.html”不匹配任何路线。

当应用程序通过文件协议提供服务时,有没有办法让 react-router 工作?

截至目前,路由器根本无法与 cordova/phonegap 一起使用,因为它们将所有内容都作为本地文件提供服务。

4

1 回答 1

8

似乎 BrowserHistory 不能与文件协议一起使用。

https://github.com/rackt/react-router/issues/2639

HashHistory 似乎有效,我想您可以尝试一下吗?

// import createBrowserHistory from 'history/lib/createBrowserHistory';
import createHashHistory from 'history/lib/createHashHistory';

// let history = createBrowserHistory();
let history = createHashHistory();

ReactDOM.render(
  <Router history={history}>
    <Route path='/' component={YourComponent} />
  </Router>,
  document.querySelector('#your-app-wrapper')
);
于 2015-12-22T16:02:33.890 回答