Javascript 如何从本地文件url(“文件://”)访问react应用程序生成,而不使用任何HTTP服务器?
我的要求是,我必须通过如下方式加载本地文件URL来使用react SPAJavascript 如何从本地文件url(“文件://”)访问react应用程序生成,而不使用任何HTTP服务器?,javascript,reactjs,react-router,single-page-application,Javascript,Reactjs,React Router,Single Page Application,我的要求是,我必须通过如下方式加载本地文件URL来使用react SPA file:///C:/react/build/index.html 不使用任何HTTP服务器 在这个场景中,它正确地使用HTTP服务器, 但在本地文件URL访问的情况下,只有初始组件工作正常,但路由不工作 它在chrome中给出了以下类型的错误- 未捕获的DomeException:未能对“历史记录”执行“pushState”:A URL为“”的历史状态对象file:///C:/react/build/Aboutus“不
file:///C:/react/build/index.html
不使用任何HTTP服务器
在这个场景中,它正确地使用HTTP服务器,
但在本地文件URL访问的情况下,只有初始组件工作正常,但路由不工作
它在chrome中给出了以下类型的错误-
未捕获的DomeException:未能对“历史记录”执行“pushState”:A
URL为“”的历史状态对象file:///C:/react/build/Aboutus“不行
将在源代码为“null”且URL为的文档中创建
'file:///C:/react/build/index.html"
在firefox中-
SecurityError:操作不安全。1.d30e17d6.chunk.js:1推送/我正在对react router v4使用create react app方法此问题可以使用或替代{BrowserRouter}解决 然后您可以从本地文件协议访问SPAfile:///xyz/index.html,并且您的路由器链接将与react router for local file URL配合使用
- import { BrowserRouter as Router} from "react-router-dom"; //remove this line
+ import { HashRouter as Router} from "react-router-dom"; //try this line
or
--
+ import { MemoryRouter as Router} from "react-router-dom"; //try this line
还将以下行添加到package.json中,以进行相对链接
"homepage": ".",
这个问题可以用或代替{BrowserRouter}来解决 然后您可以从本地文件协议访问SPAfile:///xyz/index.html,并且您的路由器链接将与react router for local file URL配合使用
- import { BrowserRouter as Router} from "react-router-dom"; //remove this line
+ import { HashRouter as Router} from "react-router-dom"; //try this line
or
--
+ import { MemoryRouter as Router} from "react-router-dom"; //try this line
还将以下行添加到package.json中,以进行相对链接
"homepage": ".",
我有一个非常类似的问题,并使用了使它工作,因为它实际上没有改变url。此外,我还将绝对路由更改为相对路由,将package.json配置为homepage:,react不正式支持它。我遇到了一个非常类似的问题,并使用了,因为它实际上没有更改url。此外,我还将绝对路由更改为相对路由,使用homepage:,配置package.json,react不正式支持该路由@Praveen Kumar contrushothaman,您链接的副本实际上不是该问题的副本。这个问题的标题不完整。@nbokmans我读了完整的问题,然后发现这是一个很好的匹配。你为什么这么认为?@PraveenKumarPurushothaman你建议的答案不是我想要的。正如我已经说过的,初始组件加载良好,但它给出了上述错误,以便在我的应用程序中使用react router进行后续路由。因此,请建议我一个解决方案或删除重复flag@Smaranjit啊,我想从其他答案中可以明显看出。React路由器在文件协议上不工作。请看:.@PraveenKumarPurushothaman感谢您的回复,实际上在访问您的链接后,我尝试了那里提供的几种解决方案,现在它适用于我的具体情况。我也发布了答案。@Praveen Kumar追踪哈曼,你链接的副本实际上不是这个问题的副本。这个问题的标题不完整。@nbokmans我读了完整的问题,然后发现这是一个很好的匹配。你为什么这么认为?@PraveenKumarPurushothaman你建议的答案不是我想要的。正如我已经说过的,初始组件加载良好,但它给出了上述错误,以便在我的应用程序中使用react router进行后续路由。因此,请建议我一个解决方案或删除重复flag@Smaranjit啊,我想从其他答案中可以明显看出。React路由器在文件协议上不工作。请看:.@PraveenKumarPurushothaman感谢您的回复,实际上在访问您的链接后,我尝试了那里提供的几种解决方案,现在它适用于我的具体情况。我还发布了解决方案作为答案。