我使用create-react-app来创建一个反应应用程序 . (哇噢!)
当我开发它时,应用程序运行良好 .
当我运行'npm build'然后使用python SimpleHTTPServer在本地托管构建文件夹时,该应用程序运行良好 . 它也适用于本地托管的另一台机器 .
我使用gh-pages在https://interpolated.github.io/ojclient/构建应用程序并将其部署到github
html加载,js加载和css加载但页面不呈现 . 没有控制台错误 . 几乎就像js没有运行一样 .
在github上托管时,js不会运行的原因是什么?
任何帮助将不胜感激,没有错误消息,很难知道去哪里 .
它可能与反应路由器有关,我正在使用它?
1 回答
JavaScript运行正常,页面也正确呈现 . 但是当然你没有't expect a blank page. To find out why it'渲染一个空白页面,你可以使用React devtools extension .
转到devtools中的
React
选项卡,您可以看到呈现的元素:正如您所看到
<Router>
包含null
,这意味着不存在匹配的路由 . 您可能想知道实际请求了什么路由,因此您可以调用历史道具的getCurrentLocation
函数 . 所选元素在控制台中可用作变量$r
,您可以使用$r.props.history.getCurrentLocation()
调用它:现在你知道路线实际上是
/ojclient/
但你没有在your routes中 .如你所料,
react-router
就是问题所在 . 您可以将主路径的根目录更改为/ojclient/
,也可以使用自定义历史记录而不是browersHistory
指定basename
至/ojclient/
(请参阅Customize your history further) .请记住,GitHub页面不支持
browserHistory
使用的HTML5 pushstate API . 要解决该问题,您可以查看Create React App的Notes on client-side routing部分 .