我想用Angular创建一个网站(我是新的),但也希望能够拥有不同的视图"可以在搜索引擎中缓存并拥有自己的URL路由。我如何使用Angular实现这一目标,或者最好不要使用它?
答案 0 :(得分:0)
在Angular中使用pushState
启用$locationProvider.html5Mode(true);
,以便您拥有真实的网址,并确保在客户端请求网址时,您可以从服务器提供该网址的完整页面(以及不是用JS填充的一组空模板。
当遵循链接时,您将通过Angular视图并更新现有DOM(同时使用pushState
更改URL),但初始加载应该是一个完整的页面。
这确实意味着重复工作(您需要用于构建每个页面的代码的客户端和服务器端版本)。 Isomorphic JS在处理该问题时很受欢迎。
答案 1 :(得分:0)
如果您想将Angular视图公开给搜索引擎和其他机器人,我建议使用我们在Say Media开发的开源框架。它使用node.js在检测到机器人与真实用户时在服务器上呈现页面。你可以在这里找到它:
https://github.com/saymedia/angularjs-server
我建议不要使用不同的路由,因为大多数搜索引擎会因为在多个网址上有重复内容而惩罚您。虽然您可能认为他们只是点击了您网站的机器人版本,但他们在抓取单个网页应用程序(如网站)方面变得越来越复杂。对于相同内容的重复路由,我会保持谨慎。
祝你好运!