我正在开发一个带有 AngularJS 前端和 Laravel API 后端的应用程序。 Laravel 后端只是监听请求,处理它们并返回一个答案。前端和后端是不同的独立应用程序......到目前为止。我这样做是为了以后能够开发一个可以使用 API 的移动应用程序。我还使用 JWT 对用户进行身份验证,所以我根本没有使用 Laravel 的 session 。此时我只需要一个webapp。我构建了一个使用 angular ui-router 的 webapp。
到目前为止一切顺利。前端和后端运行良好。然而,一些前端 View 将是公开的并且需要共享按钮,它们还需要被谷歌索引。
我读过有一些替代方案。
- Make some hack使用 apache mod_rewrite 为人们提供 Angular 应用程序,并由后端直接提供它的静态版本。我认为使用 Laravel 不会很困难。
- 使用 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/