0

当我单击某些链接时,我具有以下功能:

function showPage(page) {
    var History = window.History;
    History.pushState(null,null,page);
    $("#post-content").load(page + ".php");
}

页面内容更新,URL 改变。但是我知道我肯定做错了什么。例如刷新页面时,它给了我页面未找到错误,加上新页面的链接无法共享,只是因为同样的原因。

有没有办法解决这个问题?

4

2 回答 2

1

听起来您没有将动态 URL 路由到您的主应用程序。除非page引用服务器上的物理文件,否则如果您希望这些 URL 可以用于任何事情,而不仅仅是作为浏览器历史记录中的占位符,则需要在服务器端进行一些 URL 重写。如果您不想弄乱服务器端,则需要使用另一种策略,例如使用hashes破解 URL 。这样,服务器仍然始终为您的主应用程序页面提供服务,然后应用程序页面读取 URL 附加内容以确定需要动态呈现的内容。

于 2012-12-07T18:22:24.570 回答
0

您需要停止依赖 JavaScript 来构建页面。

服务器必须能够自己构建它们。

然后,您可以使用 JavaScript ( + Ajax)逐步增强pushState以将前一页转换为目标页,而无需重新加载所有共享内容。

你的问题是你在建立基础之前已经完成了“增强”。

于 2012-12-07T17:03:15.340 回答