我正在努力改变
http://domain.co.uk/#!/pagename
至
http://domain.co.uk/pagename
我正在考虑重写 URL,然后意识到,因为它是单页网站,所以这是行不通的,所以我陷入了困境!
有没有办法在现有的代码库(一个快速的 JavaScript 函数)下做到这一点?或者这只是我必须忍受的事情?
!我猜测是后者(我想可能会更改为domain.co.uk#pagename),但很高兴被证明是错误的!
最佳答案
基础知识很简单:
if (location.hash && (location.hash.substr(1,1) === "!")) {
location.replace(location.toString().replace('#!', "/"));
};
您只需确保新网址首先有效即可。
这意味着:
- 更新客户端代码以使用pushState 和 friend (这样您就可以停止生成hashbang URI)
- 更新服务器端代码,以便它能够以正确的状态交付网站的每个页面,而不依赖于客户端代码(以便 (a) 任何页面都可以快速高效地加载,并且 (b) JavaScript 成为性能提升工具奖金而不是搜索引擎讨厌的依赖)
关于javascript - 如何删除#!来自网址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23514715/