angularjs - Laravel、AngularJS 和 SEO

标签 angularjs laravel-5 seo

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

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

我读过有一些替代方案。

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

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

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

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

最佳答案

渲染站点:

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

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

元标签:

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

关于angularjs - Laravel、AngularJS 和 SEO,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36189498/

相关文章:

angularjs - 指令 : how to evaluate ng-options in parent scope

javascript - AngularJS:指令 - 无需使用引号即可传递字符串

laravel - 如何在 x 分钟后重试作业?

javascript - 单页应用 Nginx Django Python 和端口转发

html - 动态网址索引

HTML5 事件列表语义

angularjs - 为什么我无法访问正确的范围?

angularjs - Jasmine 测试中的未知提供者错误

eloquent - Laravel eloquent 使用 with() 方法连接多个表并搜索数据

php - Laravel:按名称从路由获取 URL