ng build 无法在“History”上执行“replaceState”:无法在原始“null”和 URL 的文档中创建带有 URL 的历史状态对象

2024-05-01

我使用的是 Google Chrome 版本 52,我希望能够通过访问 index.html 在本地运行我的应用程序,而无需服务器。

我能够访问我的应用程序的登陆页面。但是,当我尝试导航到另一个页面或单击任何按钮时,它无法工作。

我尝试了很多方法,例如:

  • 导入前添加脚本参考一 https://stackoverflow.com/questions/32481260/failed-to-execute-replacestate-on-history-local-url-cannot-be-created-in-a and 参考二 https://stackoverflow.com/questions/32453806/uncaught-securityerror-failed-to-execute-replacestate-on-history-cannot-be
  • 将基本 href 从 / 更改为 ./
  • 更改路由器配置以使用哈希并将基本 href 更改为 <script>document.write('<base href="' + document.location + '" />');</script>
  • Using ng build --prod --allow-file-access-from-files

This is the exact error I faced: enter image description here

我已经尝试了一天,如果有人能提供帮助,我将非常感激。

我不想运行网络服务器,我必须让它在 Chrome 上运行。

编辑: 适用于 Safari

不适用于 Chrome、Firefox、Opera、IE、Microsoft Edge

谢谢你!


有几个原因可能会导致您的路由器出现问题。如果您在生产环境中遇到问题,您应该确保遵循以下步骤:

Step 1:

在 index.html 的标头部分添加基本标签:

<base href="/">

Step 2:

Createa .htaccess文件放在根目录并设置ErrorDocument在您的index.html 上,如下例所示。

RewriteEngine On

ErrorDocument 404 /

这应该可以解决您的问题。

解释:

当您加载页面时,e。 G。 domain.com/settings,您的浏览器向服务器发送请求并期望 settings.html 文件作为响应。

如果ErrorDocument指向index.html文件,Angular路由器可以正确处理请求,并将您重定向到domain.com/settings,而不会出现错误。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

ng build 无法在“History”上执行“replaceState”:无法在原始“null”和 URL 的文档中创建带有 URL 的历史状态对象 的相关文章

随机推荐