Javascript 如何删除#!从URL
我正在努力改变Javascript 如何删除#!从URL,javascript,url,url-rewriting,Javascript,Url,Url Rewriting,我正在努力改变 http://domain.co.uk/#!/pagename 到 我想去重新编写网址,然后意识到,因为它是一个单页网站,这将无法工作,所以我卡住了 在现有的代码库(一个快速的javascript函数)下,有没有办法做到这一点?或者这只是我不得不接受的东西 !!我猜是后者(我想可能会改为domain.co.uk#pagename),但我很高兴被证明是错的 基本原理非常简单: if (location.hash && (location.hash.substr(1
http://domain.co.uk/#!/pagename
到
我想去重新编写网址,然后意识到,因为它是一个单页网站,这将无法工作,所以我卡住了
在现有的代码库(一个快速的javascript函数)下,有没有办法做到这一点?或者这只是我不得不接受的东西
!!我猜是后者(我想可能会改为domain.co.uk#pagename),但我很高兴被证明是错的 基本原理非常简单:
if (location.hash && (location.hash.substr(1,1) === "!")) {
location.replace(location.toString().replace('#!', "/"));
};
您只需要确保新的URL首先工作
这意味着:
感谢你的回答-我不够聪明,无法实现这一点,不幸的是,每当我尝试重新编写上述内容时,我的服务器都会将其视为一个单独的页面,并抛出一个404-对于一个单页面站点,我意识到没有办法绕过一个#-这是除非我错误地理解了上述内容??!!??这是一个单独的页面。参见答案中列出的先决条件列表中的第2点。一般来说,单页网站是一个糟糕的想法(这就是为什么Twitter出现了可怕的性能问题,并放弃了单页实现)。感谢您的指导-我看到了第2点-但就是不明白-您能给我指出正确的方向吗-我不知道如何让我的服务器服务于1个页面,但根据URL中的第二个参数转到该页面上正确的子部分,而不将其视为不同的页面-我想这是一个在此阶段重新编写的URL?对不起,如果我只是没有遵循,但我显然是一个ickle有点厚!没有涉及URL重写。如果您只想链接到页面的一个子部分,那么这将是一个带有
且没有的URL代码>。如果您想在使用JS操作DOM后以页面的状态链接到该页面,那么您可以找到HTML,该HTML将提供与从原始HTML开始并运行JS相同的效果,然后你将HTML服务给客户。谢谢-我想我现在得到了它,所以标记为已接受-可能会问另一个问题(与此问题分开!),但我们会看到:-P
if (location.hash && (location.hash.substr(1,1) === "!")) {
location.replace(location.toString().replace('#!', "/"));
};