当我点击某些链接时,我有以下功能激活:
function showPage(page) {
var History = window.History;
History.pushState(null,null,page);
$("#post-content").load(page + ".php");
}
页面内容更新,URL更改。但是我知道我肯定做错了什么。例如,当我刷新页面时,它会给我一个Page Not Found错误,加上新页面的链接无法共享,只是因为同样的原因。
有什么方法可以解决这个问题吗?
答案 0 :(得分:1)
听起来您没有将动态网址发布到主应用。除非page
指的是服务器上的物理文件,否则如果您希望这些URL不仅仅是浏览器历史记录中的占位符,那么您需要在服务器端进行一些URL重写。如果您不想弄乱服务器端,则需要使用其他策略,例如使用hashes来破解URL。这样,服务器仍然始终为您的主应用程序页面提供服务,然后应用程序页面会读取URL附加内容以确定需要动态呈现的内容。
答案 1 :(得分:0)
您需要停止依赖JavaScript来构建页面。
服务器必须能够自己构建它们。
然后,您可以progressively enhance使用JavaScript(pushState
+ Ajax)将上一页转换为目标页,而无需重新加载所有共享内容。
你的问题是你在建立基础之前已经完成了“增强”位。