问题是:当我切换到页面时,关于/ index.html或skills / index.html,旧的别名URL没有删除。 据你所知,如果我进入下一个链接,我会得到/关于/技能......但这不是正确的道路。我正在使用Ajax + pushState。
$(document).on('click', '#nav_bar nav a,.flat-button, a.logo', function ( e ) {
e.preventDefault();
if ( !$(this).hasClass('active') ) {
if ( app.ui.pageLoad($(this).attr('href'), $(this).attr('rel')) ) {
debug;
$('#nav_bar nav a.active').removeClass('active');
$(this).addClass('active');
window.history.pushState("", "", $(this).attr('href'));
}
}
$('a.logo').removeClass('active');
e.stopPropagation();
return false;
});
pageLoad: function ( url, rel ) {
console.log(url);
if ( app.ajax !== null ) {
return false;
}
else {
app.ui.preloader.preloaderInit(rel);
app.ajax = jQuery.ajax({
type: 'GET',
url: url
});
app.ajax.done(function ( msg ) {
var cont = $(msg).filter("#page");
app.ui.contents = cont.contents();
app.ajax = null;
});
app.ajax.fail(function ( jqXHR, textStatus ) {
const errmsg = 'Error';
$("#page").html(errmsg);
});
return true;
}
},
使用根相对路径(它们以/
开头)而不是相对路径(它们相对于当前文件位置进行解析):
href="skills/index.html" => href="/skills/index.html"
我修复了问题app.ajax = jQuery.ajax({type:'GET',url:'http://localhost:63342/jacekjeznach.com/'+ url});