- objective-c - iOS 5 : Can you override UIAppearance customisations in specific classes?
- iphone - 如何将 CGFontRef 转换为 UIFont?
- ios - 以编程方式关闭标记的信息窗口 google maps iOS
- ios - Xcode 5 - 尝试验证存档时出现 "No application records were found"
当然,有许多资源可用于实现 AngularJS 应用程序的 SEO 友好版本。尽管阅读了无数遍,但我仍然对一些事情不太清楚,尤其是关于 hashbang 和 HTML5 模式模型之间的区别:
对于 hashbang(#!
或“HTML4”)应用程序,location
提供商提供以下设置:
$location.hashPrefix('!');
HTML5 模式是否也需要此设置?为什么或为什么不?
对于 HTML5 模式的应用程序,index.html
页面中包含以下 meta
标记:
<meta name="fragment" content="!">
hashbang 应用程序也需要这个元标记吗?为什么或为什么不?
使用 HTML5 模式,我的 URL 类似于:
http://sample.com/landing/home
即使在我的 index.html
中指定了 #2 中的 meta
标记,我仍然无法像爬虫那样导航到我的 URL,例如:
http://sample.com/#!/landing/home
这正常吗?在添加 location
提供商设置和/或 meta
标签后,如果它是 HTML5 模式应用程序,我是否应该期望能够导航到我的应用程序 hashbang 风格?
最重要的是,我想我的实际问题是:HTML5 模式抓取特别需要什么,hashbang 式抓取特别需要什么?它们如何重叠?此外,如果没有生成/使用 hashbang 样式的路由,HTML5 模式配置实际上如何在幕后工作?
请注意,这些问题与我通常理解的生成/提供快照的问题是分开的。
AngularJS SEO 友好的配置对于经典的 hashbang 风格的应用程序通常是有意义的,但对于 HTML5 模式,我有点困惑。会喜欢一些清晰度。
最佳答案
HTML4 也不需要 Hashbang。但是,如果您想实现 SEO,最好使用它,因为搜索机器人会看到这些链接并请求不同的 URL:
原创
http://somesite.com/#!/crazy/101
机器人:
http://somesite.com/?_escaped_fragment_=crazy/101
包含元标记,因此搜索机器人会自动将 ?_escaped_fragment_ 附加到请求中。由于它不知道哪一部分实际上是 SPA 的一部分,因此该值将为空。
带有 meta
标签的原创
http://somesite/crazy/101
机器人
http://somesite/crazy/101?_escaped_fragment_=
参见 #2
它使用在 HTML5 中实现的历史 API 工作,允许更改浏览器的 URL 和历史条目操作。基本上,它允许开发人员更改浏览器的 URL 地址,而无需浏览器实际发出请求。
假设您的 SPA 在域根 http://somesite.com
运行。因此,只要浏览器中的 URL 发生变化,就意味着它已在客户端上被操纵。这意味着服务器上的某些子内容 URL 上没有实际内容。
这就是机器人在末尾附加 _escaped_fragment_
的原因,这样您就可以向 root 提供静态内容而不是 404 或 301(因为服务器上不存在内容)。这个静态内容除了返回内容外什么都不做。不处理 SPA 脚本。纯内容。
关于javascript - AngularJS SEO 使用 HTML5 模式 : Would love some clarity on how this functions behind-the-scenes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23416510/
因为我不熟悉隐式类型;你能告诉我它们之间的主要区别吗: var foo = new Love(); 和 object foo = new Love(); 最佳答案 在第一种情况下,foo 的类型是L
VSCODE调试LOVE引擎游戏 安装插件 配置插件 按 CTRL + SHIFT + P ,打开 Preferences: Open User Sett
Monologue. Everylove` ▓Mr. sandman control、 ▍Only you ▍ -worth love° じAomrご 〆Nancy ゛
我已经设置了一个配置文件,并且刚刚开始编写一个程序来为基于文本的角色扮演游戏/模拟游戏设置标题屏幕。背景颜色似乎没有从默认的黑色改变,这就是问题所在。我已经在下面发布了我现有的代码。是的,我正在执行包
取自 - http://www.echojs.com/news/8518 这如何产生 window.alert("I love you");?我明白它如何从 Infinity 中获取 I,就是这样
Love is a carefully designed lie. 爱情是一个精心设计的谎言 A friend without faults will never be found.&
最美好的承诺不是我爱你,而是我们以后一起过日子。最浪漫的话不是我爱你,而是你拿出戒指对我说,嫁给我吧。女生喜欢听好话,但是不喜欢对方只是说说而已。
每当我用数组做这样的事情时,我都会遇到一个非常恼人的错误。我有在 love.load() 函数中设置数组的代码: function iceToolsInit() objectArray = {
我已经使用 TFS 大约 18 个月了,我对此并不感到兴奋。这似乎是市场上当前版本的 SCM 中最差的。 我认为这个线程将帮助人们决定 TFS 是适合他们还是其他源代码控制系统。虽然 TFS 的作用远
效果 安装库 安装两个库,分别用来读xml和csv,如果有luarocks,执行下列命令
You are the one [你是唯一] Block me and die. 擋我者死。 I got you. 我懂你. Your name with my life. [你的名
Time always save the best for last. 时间总是把最好的人留到最后。 The time that you are my most fatal. 光深知你是
Thintime(浅时光) Halo(光环) Cold mood(冷情绪) Unfinished Love(末了情) Forget me(忘记我) Calm(从容) Rampant(猖狂
爱情就像是一团火焰,而我们就像是飞蛾。虽然知道自己可能会粉身碎骨,但是还是义无反顾的向前冲不回头。不过恋爱经历那两个月甜蜜期以后就是正常的了,所以很多人能够恋爱却走不到最后。
Once the love dead 谢谢你光临我的梦 A people only a heart 一人仅一心 I will always love you我将会永远爱你 Down enoug
Time always endure. 时光向来熬人。 Reality is reality too 是现实太现实 Each youth will be old 每段青春都会苍老 Your n
我需要找到一个正则表达式来匹配每个句子,无论它是否在标题案例之后(句子中每个单词的第一个字母应该大写,并且单词也可以包含特殊字符)。 最佳答案 regex101 ([A-Z][^\s]*) Debug
我和我的 friend 最近一直在用 love2d 开发一款游戏,但在开发的早期阶段,我的电脑硬盘停止工作,这意味着只有我的 friend 可以在上面工作。现在我有一台电脑,我想在 Love2d 中制
所以我想知道如何根据我按下/正在按下的键来更改我创建的角色图像? 我的终极目标是在按下“d”(或任何 wasd 键)时出现行走动画,但当刚刚按下“d”键时他会静止不动,等等。所有图像都已创建. 我已经
我目前正在尝试通过 Pl/Sql (Oracle) 中的 dbms_ldap API 访问 Active Directory。问题是我无法使用自己的用户名和密码或任何方式连接。 但是,在 C# 中,我
我是一名优秀的程序员,十分优秀!