我已经使用gh-pages成功地将一个简单的react应用程序上传到GitHub页面上,现在我正尝试将Shards仪表板项目(https://github.com/DesignRevision/shards-dashboard-react)导入到我的GitHub页面上,但仅显示空白页面。
以下是我到目前为止的信息:
https://github.com/HarveyLijh/Company_ESG_Rating_App https://harveylijh.github.io/Company_ESG_Rating_App/
npm run deploy
进行构建,并且运行正常,没有错误为什么会这样?
答案 0 :(得分:0)
我仍然不知道为什么会发生此问题,但是将browserRouter更改为MemoryRouter
答案 1 :(得分:0)
您需要了解URL的工作方式。 URL是指向服务器上某些特定资源的路径。但是如何找到URL指定的资源完全取决于服务器来解释。这种解释称为“分辨率”。
服务器可以简单地将URL映射到本地文件系统路径,再映射到硬盘上的物理文件。例如。如果您正在运行Nginx或Apache服务器,则def bfs_search(maze_size, start_point, end_point, grid_values, number_of_grids):
#code for creating first node and adding to queue
while True:
#here we have the code to break the loop if queue gets empty and then finding the child
pointer and creating child notes
#this condition does not execute as it should
if child_node.state not in frontier and child_node.state not in explored:
if child_node.state == end_point:
goal = True
explored.appendleft(child_node)
break
else:
frontier.appendleft(child_node)
可能指向http://localhost/foobar/dist/index.html
之类的地方。
它也可以是由服务器即时生成的内存文件。 PHP服务器通常会这样做。 /etc/www/foobar/dist/index.html
不是磁盘上的物理HTML文件。但是服务器会根据请求生成HTML内容。
服务器可以解析主路径:
及其所有子路径:
所有这些路径均指向同一http://localhost/home.php
文件,该文件位于:
https://raw.githubusercontent.com/HarveyLijh/Company_ESG_Rating_App/gh-pages/index.html,它是磁盘上的物理文件。
服务器仅将相同的HTML发送到浏览器。浏览器完成页面加载后,JS介入,读取了地址栏中的URL,然后进一步决定应在React应用程序中呈现哪个“状态”或“路线”。
index.html
就是这样。
浏览器将History API暴露给JS。使用该API,JS可以控制显示在地址栏中的URL,没有实际上可以转到另一个页面。换句话说,暂时禁用在地址栏中输入URL并按ENTER键的默认行为。一直以来,你们都只是查看相同的BrowserRouter
文件。
要支持index.html
,github页面服务必须首先支持上述将子路径解析为同一BrowserRouter
的行为,但是很遗憾,这是不可配置的。
有一个简单的技巧:只需复制您的index.html
并将其重命名为index.html
!
因为所有子路径解析都将失败,并且github页面将诉诸于显示404.html
,瞧,问题解决了!
有关此黑客的更多详细信息,请参见:https://github.com/rafgraph/spa-github-pages