当环境= DEV时,SailsJS从本地服务器加载资产,当环境= PROD时,从CDN加载资产

时间:2015-01-10 08:54:47

标签: sails.js

您好我有一个网络应用程序,当我在我的计算机和农村地区的开发模式下工作时,我需要能够将资产用于本地文件夹。但是,当我将代码部署到PROD服务器时,我需要能够从CDN切换要加载的资产。

在sails.environment global的帮助下,这有可能吗?

例如

    <% if(sails.environment == 'PROD') { %> 
      <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>
    <% } %>

谢谢。

2 个答案:

答案 0 :(得分:0)

这些标签由Grunt插入。

我认为您可以修改tasks/config/sails-linker.js以达到您想要的效果:

有一个部分devJSprodJs我认为您应该根据您的要求对其进行修改。

请注意,我不知道这是否是帆的好习惯。

编辑更多可能有用的内容:

  

风帆升降机 - &gt;运行默认任务(tasks / register / default.js)。

     

sails lift --prod - &gt;运行prod任务(tasks / register / prod.js)。

http://sailsjs.org/#/documentation/concepts/Assets/TaskAutomation.html

出来

答案 1 :(得分:0)

您可以使用sails.config.environmentprocess.env.NODE_ENV在示例中实现您的目标,但更好的解决方案可能是使用特定于环境的配置文件来指定资产路径。例如,在config/development.js中,您可以:

"assets_path": "/js"

config/production.js

"assets_path": "//ajax.googleapis.com/ajax/libs/jquery/1.10.2"

然后在你看来:

<script src="<%=sails.config.assets_path%>/jquery.min.js"></script>