Page 420 - AngularJS权威教程
P. 420

400  第 30 章  AngularJS 和 IE 浏览器


                 $ npm install
                 $ node index.js
                 # 或者使用foreman
                 $ foreman start
                 prerender库还可以很方便地运行在heroku上:

                 $ git clone http://github.com/collectiveip/prerender.git
                 $ heroku create
                 $ git push heroku master
                                                 ①
                 这里我们将渲染后的HTML存储在S3 中,因此推荐你使用内置的S3缓存。可以阅读文档 来
                                                                                             ②
             了解如何设置这个缓存。
                 在服务器运行之后,只需要将这个抓取程序集成到应用中就行了。在Express中,使用Node
             库prerender-node集成它非常容易。

                 为了安装prerender-node,我们再次使用npm:

                 $ npm install --save prerender-node
                 安装好这个库之后,让Express应用使用这个中间件即可:

                 var prerender =
                 require('prerender-node')
                 .set('prerenderServiceUrl',
                      'http://our-prerenderserver.com/');
                 app.use(prerender);
                 就是这样!最后这个片段用于告诉Express应用,如果它察觉到爬虫请求(通过定义
             _escaped_fragment_或者用户代理字符串),就应该在合适的URL上为prerender服务创建一个
             GET请求,然后获取这个页面预渲染好的HTML。


             30.10  <noscript>方法

                 还可以使用<noscript>标签来渲染页面,而无需使用后端服务器。不幸的是,对于所有页
             面都使用这个方法是非常复杂的,因为需要从<noscript>外部将页面的所有元素复制到这个标
             签中。

                 这样做会很麻烦,为了保持两部分同步要做大量的工作,因此我们不推荐使用这个没有构建
             工具协助的方法。











             ——————————
                ① S3就是Amazon S3,全程亚马逊简易储存服务,这是亚马逊公司提供的一个网络存储服务。更多信息参考维基百
                  科:Amazon S3(zh.wikipedia.org/wiki/Amazon_S3)。——译者注
                ② https://github.com/collectiveip/prerender#s3-html-cache
   415   416   417   418   419   420   421   422   423   424   425