Angularjs 和 Linkedin 分享
Posted
技术标签:
【中文标题】Angularjs 和 Linkedin 分享【英文标题】:Angularjs and Linkedin share 【发布时间】:2015-07-16 12:11:32 【问题描述】:我有一个 angularjs 网站,其中包含几篇文章。
我希望我的用户能够通过各种社交网络分享他们的文章。
我正在使用一个名为 angularjs-socialshare
的 angularjs 插件。基本上,系统调用共享端点提供要共享的 url:
例如
http://www.linkedin.com/shareArticle?mini=true&url=http://www.google.com
现在,由于我的内容是通过 angularjs 动态加载的,这将显示类似 description
和 title
的内容
为了解决这个问题,我有一个执行 javascript 并向机器人提供静态 html 页面的 phantomjs 服务器。这是我用来告诉机器人请求的 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 和 Google 都可以正常工作。 LinkedIn虽然没有,它要么停留在加载中,要么只显示页面的url。 我尝试查找一些文档,但每个答案都引用旧文档(其中 404s ),现在我迷路了。
编辑:
对不起,我在一段时间后重新阅读后发现这个问题没有多大意义。已编辑。
我写这个问题是出于有点沮丧,但我意识到我可能应该尝试联系在linkedin工作的人以了解发生了什么。
如果我找到解决方案,我会确保在这里更新以供将来参考
【问题讨论】:
您的实际问题是什么? what 是如何工作的?您在这里显示的只是一个 htaccess 文件,您没有显示任何代码来说明您正在尝试做什么。您是在使用某种库,还是对 api 进行查询?这里没有什么是显而易见的。 从表面上看,这看起来更像是一个关于 phantomjs 的问题,而不是关于 Angular 的问题;根本没有任何角度代码。 【参考方案1】:在与支持中心进行了一些挖掘和斗争后,我发现基本上有些服务(如 LinkedIn,但还有其他一些服务)不能很好地与 hashbang 配合使用。
我通过切换到 HTML5 模式(删除了 hashbang)解决了这个问题。
.config(function ($locationProvider)
if(window.history && window.history.pushState) // Checks if browser has HTML5 support
$locationProvider.html5Mode(true);
还有这个在我的索引页的头部:
<base href="/">
希望对某人有所帮助
【讨论】:
以上是关于Angularjs 和 Linkedin 分享的主要内容,如果未能解决你的问题,请参考以下文章
通过 Twitter、Facebook、LinkedIn 和 Google Plus 分享
php Facebook,Twitter,Google Plus和LinkedIn的自定义社交分享图标