SEO友好,国际化Polymer.dart

Pet*_*ter 7 seo internationalization dart single-page-application dart-polymer

我在Polymer元素中显示国际化字符串,如下所示:

<div>
  <span class="content">{{myContent}}</span>
</div>
Run Code Online (Sandbox Code Playgroud)

...并有以下飞镖码:

@observable String myContent;

//...

void onUpdateLocale(_locale) {
  myContent = getMyContent();
}

//...

getMyContent() => Intl.message('All my content ...', name:'myContent',
    desc: 'This is my content',
    args: [],
    examples: {'None' : 0});
Run Code Online (Sandbox Code Playgroud)

然而; 当Google抓取应用时,它只会提取"{{myContent}}"而不是其内插值,即实际的国际化内容.有没有办法解决这个问题,并制作一个国际化的Polymer.dart应用程序,它也是SEO友好的?

num*_*ati 2

还不太清楚。尽管最近 Google 宣布他们正在评估 Javascript 来索引页面,但我还没有看到任何对此与服务器呈现页面方法进行比较的深入评估。

还有 Bing 等非 Google 搜索引擎的问题。

目前的 Polymer 并没有真正进行服务器端渲染,据我所知,团队没有计划在不久的将来提供这种服务。

如果您的项目/业务取决于 SEO,我不会冒险使用聚合物。

您有两种选择来解决此问题:

  1. 每当爬虫请求页面时,使用 phantom.js 在服务器端渲染页面。

  2. 使用 ajaxsnapshots 等第三方服务。

  3. 忘记聚合物并使用react.js组件框架。React 有一种在服务器端渲染虚拟 DOM 的方法。如果您使用的是 Node.js 框架,这将无缝工作。JVM 框架以及 Java 6+ 附带的 Javascript 引擎(在 Java 8 中得到极大改进。Google“nashhorn”)应该可以实现这一点。