如果angularjs中启用了html5mode,如何重新加载页面

How to reload page if html5mode is enabled in angularjs?

本文关键字:何重新 加载 html5mode angularjs 启用 如果      更新时间:2023-09-26

我在angularjs中做了一个SPA,当我在浏览器上运行它时,它在地址栏中显示了"#"。所以我启用了html5Mode。这成功地从url中删除了"#",但当我尝试重新加载页面时,它给出了404:page not found错误。我试着用.htaccess从这个网址写:角路由的htaccess重定向

没有什么变化。我也遵循咕哝的回答,但这也没有帮助。

您是否正确启用了html5模式?

看看关于html5模式/hashbang模式的问题的答案。

您是否将<base href="/">添加到html的头部?

您需要设置服务器路由,以返回所有角度url的索引文件。

通常,您在某个特殊的端点(如mysite.com/api/v1)注册您的api,如果url与此模式不匹配,则返回带有角度引导逻辑的index.html文件。

之所以会发生这种情况,是因为在没有html5模式的情况下,所有请求都会发送到根服务器url(mysite.com/,即使链接是mysite.com/#!/profile),但当您启用html5模式时,请求会按照angular中声明的方式发送,因此如果您使用href路由到profile(/profile)并从那里重新加载页面(mysite.com/sprofile),请求将被发送到mysite.com/profile,它将以404响应,因为它被设置为仅返回'/'url

的索引文件