我有一个angularjs网站,其中包含多篇文章。
我希望我的用户能够通过各种社交网络分享他们的文章。
我正在使用名为angularjs-socialshare
的angularjs插件。基本上,系统调用共享端点,提供要共享的URL:
E.G。
http://www.linkedin.com/shareArticle?mini=true&url=http://www.google.com
现在,由于我的内容是通过angularjs动态加载的,因此会显示类似{{ description }}
和{{ title }}
为了解决这个问题,我有一个phantomjs服务器执行javascript并为机器人提供静态html页面。这是我用来告诉机器人请求的htaccess(顺便说一句,这里的任何提示都是受欢迎的)。
Options +FollowSymLinks
RewriteEngine on
RewriteCond %{REQUEST_URI} !\.(gif|jpg|png|ico|ico)$
RewriteCond %{QUERY_STRING} ^_escaped_fragment_=/?(.*)$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*pinterest.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*linkedin.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*slack.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*facebook.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*google.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*yahoo.*$ [OR]
RewriteCond %{HTTP_USER_AGENT} ^.*bing.*$
RewriteRule ^(.*)$ http://localhost:27366/$1 [P,L]
http://localhost:27366/$1
只是phantomjs服务器。
现在,Facebook和谷歌都运作良好。 LinkedIn虽然没有,但它仍然停留在加载,或者它只显示页面的URL。 我试着寻找一些文档,但每个答案都是指旧文档(404s),现在我迷失了。
编辑:
对不起,我意识到这个问题在一段时间后重新阅读后没有多大意义。编辑。
我有点沮丧地写了这个问题,但我意识到我应该尝试联系在linkedin工作的人来了解发生了什么。
如果我找到解决方案,我会确保在此更新以供将来参考
答案 0 :(得分:0)
经过与支持中心的一些挖掘和斗争之后,我发现基本上某些服务(如LinkedIn,但还有其他服务)与hashbang不兼容。
我通过切换到HTML5模式(删除了hashbang)解决了这个问题。
.config(function ($locationProvider) {
if(window.history && window.history.pushState){ // Checks if browser has HTML5 support
$locationProvider.html5Mode(true);
}
}
这也是我的索引页面的主管:
<base href="/">
希望它有助于某人