gpt4 book ai didi

javascript - 标签上的 Angularjs 1.5 ng-controller

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:37:39 25 4
gpt4 key购买 nike

我正在使用 Angularjs 1.5。

创建了一个服务来处理元数据和页面标题。尝试应用它。

问题是 - 出于某种原因,如果我直接在 <head> 上定义 Controller 标签:

<head ng-controller="headMetaController">

Controller 根本不会加载,但如果我将它包装在额外的 <div> 中与 <head> :

<head>
<div ng-controller="headMetaController">
<title ng-bind="seoMetaService.title()"></title>
<meta name="description" content="{{ seoMetaService.metaDescription() }}">
<meta name="keywords" content="{{ seoMetaService.metaKeywords() }}">
<div>
</head>

=> 它有效。

所以,我猜它与特别是 <head> 有某种联系tag => 不确定,正确的解决方法是什么?我也害怕将元数据放在额外的 <div> 中出于 SEO 目的可能不是一个好主意?

最佳答案

如果您担心 SEO,则必须从另一个 Angular 来解决这个问题。

除了<div><head> 内无效, 在 <meta> 上使用插值值(value)观是一个危险信号。关心这些标签的爬虫不会看到它们——相反他们会看到 {{ seoMetaService.metaKeywords()}} ,这显然不利于 SEO。

解决方案 A:在服务器端呈现这些值。

解决方案 B:保留现有内容,但指示抓取工具在不同位置访问您的页面。添加<meta name="fragment" content="!"> ,并允许您呈现的页面的快照存在于其他地方——并在 ?_escaped_fragment_= 时提供。被添加到 URL。您可以将此部分委托(delegate)给服务,如 prerender.io或类似的,它将扫描并存储您的页面。

关于javascript - <head> 标签上的 Angularjs 1.5 ng-controller,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43236765/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com