我无法让IronRouter和Spiderable在我的Meteor.js应用程序中很好地协同工作。如果我在本地主机上运行时使用?_escaped_fragment_=测试url,它一切正常,但是一旦我推送到我们的DigitalOcean生产服务器,我在尝试相同的事情时不断收到以下错误(查看http://hreglobal.com/?_escaped_fragment_=):Error:MeteorcodemustalwaysrunwithinaFiber.Trywrappingcallbacksthatyoupasstonon-MeteorlibrarieswithMeteor.bi
更新好的,我已经找到错误了!我使用的字体来自http://www.typography.com/如果我从中删除指向字体的链接(或者甚至把它放在正文中)每次都能正确获取网站!总结:如果您使用的是从远程域加载的webfonts(也有某种许可证批准过程),那么spiderable包会崩溃!原问题:所以我得到了这个使用meteor.js构建的简单网站。它在DigitalOcean上,使用meteorup部署(启用phantomjs)并且它使用spiderable包。Here'sthesite,it'sasimpleportfolio.现在当我做例子时curlhttp://portfolio.n
我们的Meteor版本是0.8.1,这意味着当我们尝试安装当前版本的Spiderable时它会崩溃。PhantomJS与这种不兼容有关,因为它有一些过时的依赖项,主要是关于BlazeLayout和IronRouter的问题。但是我们确实需要元数据才能工作,尤其是在Facebook上。我的意思是像og:title,og:image,og:description...因为我们把标签在之上,浏览器实际上可以读取中的所有内容,但Facebook和Google不会。有什么想法吗?谢谢! 最佳答案 您也许可以使用inject-initial包。
关注本文METEORSEOGUIDEhttps://gentlenode.com/journal/meteor-12-the-complete-guide-to-seo/20:我已经安装了Spiderable(meteor添加spiderable)、phantomjs(apt-getinstallphantomjs),确保我所有的发布都有返回。我正在使用meteor1.0.0和iron-router1.0.0。一切似乎都运行良好,当我打开localhost/?_escaped_fragment_=时,我得到了phantomjs生成的静态内容(没有错误),但是{{>yield}}中的内容