我正在使用history.pushState方法更改我的URL和标题
window.history.pushState(null, response.pageTitle, curl);
使用此方法:更改元标记说明和关键字
$('meta[name="description"]').attr('content', d.meta_disc_program);
$('meta[name="keywords"]').attr('content', d.meta_keyword_program);
URL |元标记|标题由数据库动态更改。 页面加载或刷新时-通过匹配URL与数据库URL字段获取数据。 所有页面都工作良好。 但是在查看源文件中:URL更改但不显示任何元标记| 查看源文件
中的标题解释更多我的问题: 这是我使用的虚拟代码-d.ProgramUrlonWeb是(像:/ b-tech-Electrical-engineering ),它会生成curl(请参见代码)
//Change URL
if (d.ProgramUrlonWeb) {
var ma = window.document.URL;
var res = ma.substring(0, ma.indexOf('\search-your-course'));
if (ma.indexOf('\search-your-course') != -1 && data.length > 0) {
if (d.ProgramUrlonWeb != null && d.ProgramUrlonWeb != undefined) {
//back slash in url
if (ma.indexOf('localhost') != -1) {
curl = res + 'search-your-course/programmes' + d.ProgramUrlonWeb;
}
}
}
else {
if (d.ProgramUrlonWeb != null && d.ProgramUrlonWeb != undefined) {
//forward slash in url
if (ma.indexOf('localhost') != -1 || ma.indexOf('admission.aksuniversity.ac.in') != -1) {
curl = 'search-your-course/programmes' + d.ProgramUrlonWeb;
}
}
}
//window.location.href="#";
//dynamic url
var response = {};
var stateObj = {};
response.pageTitle = d.meta_title_program;
processAjaxData(response, stateObj, ma + curl);
$('meta[name="description"]').attr('content', d.meta_disc_program);
$('meta[name="keywords"]').attr('content', d.meta_keyword_program);
}
//Change URL
下一步: processAjaxData使用window.history.pushState更改页面标题和URL。
function processAjaxData(response, stateObj, urlPath) {
var Title = response.pageTitle;
if (urlPath != "" && urlPath != undefined) {
window.history.pushState(null, response.pageTitle, curl);
document.title = Title;
}
}
页面重新加载:匹配数据库中的URL(,例如:/ b-tech-Electrical-engineering ),并返回数据库的所有字段,例如元标记和页面数据等。
问题:页面上的所有工作也可以在页面上刷新,但是当我打开视图源时不工作的所有字段为空。那么有什么解决方案吗? 我要的demo link。
答案 0 :(得分:0)
谢谢,View Source是在服务器端加载数据,因此解决方案是在服务器端加载一些对SEO非常重要的数据。 我正在生成一些服务器端代码,例如元标题和描述以及关键字和标题标签,这对于SEO很重要。更改一些代码-在页面加载之前加载重要的SEO内容。 由数据库(PHP)匹配URL返回一些SEO标记和标题,这在视图源中有效。我希望我习惯了当前的策略。