如何访问反应过来,从应用程序的本地文件的URL建立(“文件:///”),而无需使用任何HTTP服务器?

问题描述 投票:-2回答:2

我的要求是,我用我的反应SPA通过加载本地文件的网址如下

file:///C:/react/build/index.html

而无需使用任何HTTP服务器。

在这种情况下,它的正常工作与HTTP服务器,但在本地文件URL访问的情况下,只有初始部件工作正常,但是路由无法正常工作。

它给下列类型的错误的镀铬

未捕获抛出:DOMException:未能执行“pushState的”上“历史”:用URL的历史记录状态对象“文件:/// C:/反应/编译/公司简介”不能与起源“空”的文档中创建和URL“文件:/// C:/react/build/index.html”。

在firefox-

引发SecurityError:操作是不安全的。 1.d30e17d6.chunk.js:1个推/ <createBrowserHistory.js:153个confirmTransitionTo createTransitionManager.js:33个推createBrowserHistory.js:146 E / i.handleClick Link.js:99 P / <反应-dom.production.min。 JS:49 p反应-dom.production.min.js:45 p / <反应-dom.production.min.js:73 p反应-dom.production.min.js:72号反应-dom.production.min。 JS:168ê反应-dom.production.min.js:158Ĵ反应-dom.production.min.js:232 Tn的反应-dom.production.min.js:1712杂志反应-dom.production.min.js: 5451申反应-dom.production.min.js:660的Sn反应-dom.production.min.js:1754发反应-dom.production.min.js:5479的C n反应-dom.production.min.js:1731道道自托管:1018:17

请建议我一些解决方案或者给我一些示例代码。请不要建议使用任何HTTP服务器的方法,因为在这种情况下,我必须这样做,不使用任何HTTP服务器。

我使用CREATE-反应,应用与反应路由器V4方法

javascript reactjs react-router single-page-application
2个回答
2
投票

这个问题可以用{HashRouter}{MemoryRouter},而不是使用{BrowserRouter}来解决。

然后你可以从本地文件协议("file:///xyz/index.html")访问SPA,和路由器链接将正常工作与反应路由器本地文件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": ".",

0
投票

我有一个非常类似的问题和所使用的memory router,使其工作,因为它实际上并没有改变网址。此外,我改变了绝对路径与"homepage": ".",配置的package.json相对路径,它不是正式的反应支持

© www.soinside.com 2019 - 2024. All rights reserved.