我有一个单页应用程序,节点提供骨干应用程序以及所有营销材料。我想从Rackspace Cloudfiles CDN提供所有资产(JS,html,图像),以减少加载时间,因为gzip文件将被传送,同时减少节点服务器上的负载。
自动化的最佳方法是什么?
我需要:
我找到了我的项目中使用的Grunt和Node Modules的解决方案。
Grunt CDN
Grunt Cloud Files
Node Asset Rack
如果我和Grunt一起去 - 这是我的第一选择,
答案 0 :(得分:0)
如何设置我正在运行的快速应用程序从生产中的CDN进行服务?
当您渲染视图时,您可以向其传递一个标记,以告知从何处挑选资产。
如果你有兴趣,我在这里有一个例子。在我的情况下,我有一个标志,我是否连接到网络(例如在飞行期间),以决定从哪里选择我的JS文件:
<% if(isConnected) { %>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script>
<script src="//netdna.bootstrapcdn.com/bootstrap/3.0.0/js/bootstrap.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular-resource.min.js"></script>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular-cookies.min.js"></script>
<% } else { %>
<script src="/js/jquery.min.js"></script>
<script src="/js/bootstrap.min.js"></script>
<script src="/js/angular.min.js"></script>
<script src="/js/angular-resource.min.js"></script>
<script src="/js/angular-cookies.min.js"></script>
<% } %>
https://github.com/hectorcorrea/hectorcorrea.com/blob/master/views/index.ejs#L136
在我的示例中,该值是硬编码的,但您可以轻松地将Express dev / prod值传递给视图以自动完成相同的操作。