我已经实现了一些简单的页面,包括标题,内容区域和页脚。
<div id=header></div>
<div id=content></div>
<div id=footer></div>
点击锚点/链接后,我使用ajax发送请求,然后将从响应中获取的html加上一些工作(脚本)加载到内容区域。全部根据各自的资源(网址)完成。
$("#main-menu a[rel='tab']").click(function(e){
pageurl = $(this).attr('href');
$.ajax({url:pageurl,success: function(data){
console.log(data);
$('#content').html(data);
}});
if(pageurl!=window.location){
window.history.pushState({path:pageurl},'',pageurl);
}
return false;
});
脚本位于index.html上(被视为“欢迎文件”),从中我可以加载内容。但是,问题在于:当我通过网址直接访问一个资源时,也就是说,没有点击某个元素 - 例如 site.com/sports ,我的服务器将返回与之相关的页面没有页眉或页脚的运动。 为了解决这个问题,我在服务器上检查名为'ajax'的请求的参数;如果是真的,它会响应请求的特定数据。但是,如果'ajax'是假的或没有通知,那么我将页眉和页脚一起发送。
我这样做了吗?还有另一种方法吗?是否有一些好的书/文章我可以找到这个答案?
答案 0 :(得分:0)
如果您使用的是apache,可以通过friendly_url执行此操作。 在htaccess,你可以隐藏index.html,并通过GET调用页面。 Apache会自动将其更改为site.com/index.html?page=anything