【发布时间】:2016-04-11 15:42:38
【问题描述】:
我会非常具体。
我有一个前端... http://www.eroticahub.site(不是色情)
如果你有 javascript,它会变成... http://www.eroticahub.site/#!body=home [使用 jquery/ajax 加载渲染]
如果您没有 javascript,它仍然存在... http://www.eroticahub.site/
然后你点击底部的“隐私”。
如果你有 javascript,它会将文件 /body/privacy.html 加载到主 div 中,你会得到... http://www.eroticahub.site/#!body=privacy [使用 jquery/ajax 加载渲染]
如果你没有 javascript,你只会得到... http://www.eroticahub.site/body/privacy_body.html
^ 我只是在获取 jquery/ajax 插入到模板中的文件。
这不是一个很好的解决方案。我想要一个永远不会完全刷新/重新加载但被每个主要搜索引擎完全索引的页面。
有没有可能做这样的命令:
For each link in page,
if ( user_has_javascript )
return page_with_javascript;
else
return serverside_render( page_with_javascript );
这样,任何没有 javascript(包括网络爬虫)的用户都将获得页面的纯 html/css 版本。我打算将 Ruby 用于我的后端。有没有人有一个干净的解决方案来解决这个问题?
【问题讨论】:
-
可以通过User-Agent检测是否是爬虫,或者在html中使用
-
假设用户直接访问...eroticahub.site/privacy。它将具有通用站点模板,然后在其中将有一个包含隐私正文模板的 noscript。然后在底部会有一个 javascript,上面写着“如果 URL == 隐私”,然后运行这个使用 jquery/ajax 加载隐私正文语句的 javascript。然后,如果用户单击链接以转到“合法”...您无法重新加载通用网站模板,因为这会导致页面刷新。
-
您不能根据爬虫用户代理生成不同的 html,因为这听起来像是在欺骗搜索引擎。那些东西很愚蠢。
-
好的。假设用户直接访问... eroticahub.site/#privacy。搜索引擎理解 URL 参数但通常忽略片段,因此#privacy 可能不会出现在搜索引擎列表中,因为它是一个片段。
-
好的。假设用户直接访问... eroticahub.site/privacy,然后他们单击链接转到 eroticahub.site/legal 。指向法律的链接将具有一个 javascript 函数,可将用户带到 eroticahub.site/legal#dynamic 。如果#dynamic 存在,则将“合法”模板加载到正文中。如果不存在,则必须有一个
标签: javascript html ajax search-engine single-page-application