【问题标题】:Laravel, AngularJS and SEOLaravel、AngularJS 和 SEO
【发布时间】:2016-07-11 09:54:08
【问题描述】:

我正在开发一个带有 AngularJS 前端和 Laravel API 后端的应用程序。 Laravel 后端只是监听请求,处理它们并返回一个答案。前端和后端是不同的独立应用程序......到目前为止。我这样做是为了以后能够开发一个可以使用 API 的移动应用程序。我也使用 JWT 对用户进行身份验证,所以我根本不使用 Laravel 的会话。在这一点上,我只需要一个 webapp。我构建了一个使用 angular ui-router 的 webapp。

到目前为止一切顺利。前端和后端运行良好。然而,一些前端视图将是公开的并且需要共享按钮,它们还需要能够被 Google 索引。

我读过有一些替代方案。

  1. Make some hack 使用 apache mod_rewrite 为人们提供 Angular 应用程序,并由后端直接提供静态版本。我认为使用 Laravel 不会很困难。
  2. 使用 Prerender.js。就我而言,这与选项 1 所做的工作几乎相同,但方式更完整。

但是我正在考虑使用第三种选择。鉴于我现在只需要 webapp 并且 API 正在工作,我正在考虑使用 Laravel 的内置 webapp 功能。我可以使用 Angular 的控制器、指令和工厂,让 Laravel 处理 webapp 路由。

这样做的一个优点是我可以使用 Blade 呈现元标记(这完全解决了 SEO 问题)并使用 angular 和 API 提供其余内容。

你们中的任何人都可以看到这种解决方案的缺点,或者您知道使用 Angular 和 Laravel 实现 SEO 目的的更好方法吗?

【问题讨论】:

  • 不确定我是否理解正确,但如果我理解了,您计划从 ui-route (AngularJS) 转移到需要 GET 的 Laravel Route。使用 ui-route,您可以构建 SPA 并从互联网没有其他选择的时候删除持续的 GET 请求。我只是指出这一点是为了让您充分了解,也许您不介意,但如果是我,我会的。
  • 嗨@MarcoAurélioDeleu。我一直在试验和学习 ui-route。我发现它非常有用(而且不那么容易学习)。我知道那会是个问题。但是,我试图判断这是否是一个很好的权衡。那不会是一个 SPA,但我会在我的观点上拥有 Blade 和 Laravel 的一些力量。我仍然会在每个视图上使用 angular 来完成 angular 擅长的所有其他工作(ajax、dom 访问等),但将路由留给 Laravel。 webapp 仍然会调用 API,但 SEO 和路由会更容易处理?
  • 我理解你的担忧,对我来说,Laravel 路由会扼杀 SPA 概念这一事实足以让我放弃它。但这完全是基于意见的答案,除非有人知道如何充分利用每种方法,否则您很难从中获得技术性答案。
  • @Jonathan 我知道已经很晚了,但你有想过这个吗?我在这里也有同样的情况。
  • @Jonathan 感谢您展示双重集成的可能解决方案 :)

标签: angularjs laravel-5 seo


【解决方案1】:

渲染站点:

如果你想让它对 SEO 友好,你必须从服务器端渲染页面。但是,是的,如果您只将服务器呈现的页面提供给机器人怎么办。对于真实用户,客户端渲染将起作用。

了解Rendertron,它将检测用户代理并相应地提供 html。

元标签:

使用 Sluggable 并将 id 替换为 url 中的 slug。你可以关注https://oodavid.com/article/angularjs-meta-tags-management/

【讨论】:

    猜你喜欢
    • 2014-10-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-26
    • 2017-09-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多