我正在使用 Asual 的 jQuery Address 插件在不使用哈希的情况下在内容之间进行深度链接(使用 HTML5 History API)。
这是我的代码:
$.address.state("/").init(function(e){
$('#nav li a').address(); // initializes
if (e.value == "/") {
$.address.value("/home"); // loads /home by default
};
});
$.address.change(function(e) {
// loads whatever page is in that /pages folder and puts the content in div#container
$.get("/pages" + e.value + ".html", function(data, textStatus, xhr) {
$('#container').html(""); //clears out the old content
$('#container').html(data); //loads the new page in there
});
});
单击顶部导航按钮时,这非常有效。甚至浏览器中的后退和前进按钮也很有效。问题是在另一个选项卡中刷新/打开 url 时。例如,如果我写http://domain.com它会让我访问http://domain.com/home并显示内容。如果我刷新我得到一个 404 错误。浏览器正在寻找一个实际不存在的 /home 文件(取而代之的是 home.html)。
有任何想法吗?谢谢!
DD