gpt4 book ai didi

AngularJS HTML5 模式在手动 url 更改时重新加载整个页面

转载 作者:行者123 更新时间:2023-12-03 07:59:40 24 4
gpt4 key购买 nike

我在 ui.router 中使用 AngularJS。我已经看到 Hashbang 和 HTML5 模式的行为差异,我想知道是否可以更改/防止它。
使用时

$locationProvider.html5Mode(true);

当我手动更改地址栏中的 url 时,会发生整页重新加载。
例如,如果我目前在网址上
http://example.com/post/5467777

并手动将其更改为
http://example.com/post/5464777

发生拉页重新加载,然后加载正确的状态。

如果我不使用 HTML5 模式,则不会发生整页重新加载,而是在更改 url 时直接加载状态(当然这要快得多)
http://example.com/#/post/5467777

到另一个。
我的 HTML5 模式的服务器端配置如下所示:
# Don't rewrite files or directories
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
# Rewrite everything else to index.html to allow html5 state links
RewriteRule ^ index.php [L]

我认为 AngularJS 也可以拦截这些 URL 更改。如果可能,如何在 HTML5 模式下手动更改 url 时使我的页面不重新加载?
谢谢

最佳答案

这里没有错。这是浏览器的预期行为。使用哈希时,阻止重新加载的事实是您正在同一页面内请求一个部分(一个 id 等于哈希的元素)(因此无需重新加载)。如果 URL 发生变化,浏览器只能认为它是一个新页面。

当您点击一个页面时,angular 会拦截点击并相应地更改地址栏中的 URL。

关于AngularJS HTML5 模式在手动 url 更改时重新加载整个页面,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28130752/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com