繁体   English   中英

如何将Backbone.js用于多页Web应用程序?

[英]How do I use Backbone.js for a multi-page web app?

我一直都使用Backbone的路线(#!/ blah)

但是我意识到,要被Google编入索引,您需要提供该网站的非JavaScript版本。

我不喜欢写两次代码。 因此,我宁愿构建一个多页应用程序而不是一个单页Web应用程序。

Backbone.js为我提供了“结构”,因此我的JavaScript不会变成斯帕杰蒂的混乱。 但是,我对如何使用Backbone构建多页应用程序一无所知。

您是否在每个页面渲染中都包含main.js文件? 路线呢? 你怎么处理那件事呢? 您如何处理模块化等?

我希望有一个有关如何使用Backbone构建多页javascript应用程序的教程。

做这样的事情有很多注意事项,但是这里有两个关键:

服务页面

您可能希望Web服务器将所有路由都路由到同一静态页面(假设它是静态资产)。 这意味着http://yourdomain.com/*中的所有内容都将投放/var/www/yourdomain.com/index.html 加载静态页面后,该页面上的JS将根据给定的URL决定要执行的操作。

推送状态

要进行路由,您仍然可以使用主干路由,但不要使用hashbangs( #!/blah样式url)。 例如,请参见http://backbonejs.org/#History 这将使您无需实际刷新页面即可导航到实际URL。 如果浏览器不支持pushState,则所有内容仍然可以使用,但是它将重新加载页面。

@Jamie Wong的回答让您参与其中。 通过使用pushState而不是基于哈希的URL,Google应该将每条路由视为不同的页面。 但是,由于我假设每条路线的内容都是动态生成的,因此我不清楚Google是否会抓取所有内容。 正如上面@Domenic所述,Google绝对具有访问动态内容的能力,但问题是:

1)他们可以访问多少?

2)他们是否尝试从所有站点或仅从大型数据站点(如Facebook)访问尽可能多的内容?

您可以稍后尝试为每个视图提供默认数据,然后在基于用户行为的动态内容中分层。 骨干网称之为自举。 http://backbonejs.org/#FAQ-bootstrap

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM