1

一般来说,我是网络编程和编码的新手。所以,如果这是一个新手问题或重复一个问题,或者我的知识是错误的,请原谅我。

我知道的

1.Angular 对 seo 不友好。不要误会我的意思,我知道有几种方法可以使它对 seo 友好(提供静态预渲染页面等)

2.angular编码有很多优点

3. 模块化代码可以使用 angular 中的部分编写,也可以在jade、swig 等模板中编写

案子

让我们举一个例子,网页有 5 个部分(页眉、jambotron、文本、某种形式、页脚)。现在,如果我们想要一个可重用的模块化代码,我们可以编写 angular partials 并使用 ng-include 或 ui-view 输入它们。但它对 seo 不友好

我们如何通过以下方式做到这一点:

1.使用模板生成html页面(我使用swig)。

2.为代码的每个部分编写单独的模块(页眉,jambbotron,文本,某种形式,页脚)。

3.使用依赖注入将这些模块注入页面的控制器。

4. 像往常一样使用角度函数和控制器中的所有内容。

5.get一个页面女巫是SEO友好的、模块化的、可重复使用的。

问题

1.有人用这种方法吗?

2.如果没有,是吗?如果是的话,除了我提到的还有其他原因吗?

3.任何其他更好的方法,为什么?

4.如果我继续这样做,我应该如何在注入的不同模块之间共享页面的数据?任何指南?来源?

4

1 回答 1

1

你说得对,你知道:

1.Angular 对 seo 不友好。不要误会我的意思,我知道有几种方法可以使它对 seo 友好(提供静态预渲染页面等)

2.angular编码有很多优点

3. 模块化代码可以使用 angular 中的部分编写,也可以在jade、swig 等模板中编写


现在,我从您的问题中了解到,您希望使用 angulars 优势仍然使您的应用程序 SEO 友好,对吗?

所以,我这样拆分你的问题,你所说的,

  1. 在服务器上使用 swig 生成模板(因此网页变得对 SEO 友好),
  2. 在每个页面中使用 angular 并从 angular 中获得优势。

回答:

您从 Angular 获得的优势是什么:

  1. Angular 旨在用于创建单页应用程序。即下载所有内容一次,让用户玩它,而不向服务器发出请求(对于 html),并使其感觉非常快。

  2. 模块化代码,采用 MVC 模式。

  3. 数据绑定

如果您使用 swig 而不是角度路由/模板会发生什么:

  1. 您失去了 Angular 的第一个优势,即您每次都要为每个 html 页面向服务器发出请求。

  2. 每次要加载新视图时,您都会下载所有库、角度、其指令、其他依赖项。因此,增加了数据传输,并减慢了页面加载速度。

  3. 您仍然可以在 Angular 中使用数据绑定,这很有用,但仅用于数据绑定,使用整个 Angular,不是一种选择,还有很多其他库可用于数据绑定


现在你的问题清单:

有人使用这种方法吗?如果没有,为什么?如果是的话,除了我提到的还有其他原因吗?

是的,人们使用服务器端模板,这使他们更容易使 Web 应用程序 SEO 友好,但这是您需要从项目中排除 Angular 的地方,因为如果应用程序不再是单页,它就没有更多好处了应用。

任何其他更好的方法,为什么?

要么坚持使用 angular 来制作单页应用程序而不使用 swig,要么使用它并排除 angular。

  1. 即使您选择排除 Angular,也有许多其他库可用于数据绑定,因此您可以从中受益。其余的在这种情况下真的没有用。
  2. 如果您选择包含 angular,非常不错的选择,但不要使用 swig 来破坏 angulars SPA 的性质,而是尝试 SEO 进行 angular。

如果我继续这样做,我应该如何在注入的不同模块之间共享页面数据?任何指南?

如果你真的选择了,那么糟糕的选择,只能通过服务器共享数据,并不取决于你使用什么(swig、ejs或jade)。只需阅读 swig 的文档即可。

于 2015-02-26T12:28:54.997 回答