Sails.js SailsJS在environment=DEV时从本地服务器加载资产,在environment=PROD时从CDN加载资产
嗨,我有一个web应用程序,当我在农村地区使用我的计算机和开发模式时,我需要能够使用本地文件夹中的资产。但是,当我将代码deply到PROD服务器时,我需要能够切换要从CDN加载的资产 借助于sails.environment global,这在任何情况下都是可能的吗 比如说Sails.js SailsJS在environment=DEV时从本地服务器加载资产,在environment=PROD时从CDN加载资产,sails.js,Sails.js,嗨,我有一个web应用程序,当我在农村地区使用我的计算机和开发模式时,我需要能够使用本地文件夹中的资产。但是,当我将代码deply到PROD服务器时,我需要能够切换要从CDN加载的资产 借助于sails.environment global,这在任何情况下都是可能的吗 比如说 <% if(sails.environment == 'PROD') { %> <script src="//ajax.googleapis.com/ajax/libs/jquery
<% 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>
<% } %>
谢谢。这些标签是Grunt插入的 我认为您可以修改
tasks/config/sails linker.js
来实现您想要的:
这里有一个devJS
和prodJs
部分,我认为您应该根据您的需求修改它们
注意,我不知道这是否是帆船运动中的好习惯
再编辑一些有帮助的内容:
sails lift-->运行默认任务(tasks/register/default.js)
sails lift--prod-->运行prod任务(tasks/register/prod.js)
通过使用
sails.config.environment
或process.env.NODE\u 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>
您完全可以使用Grunt来实现这一点,但可能无法使用
sails链接器
,该链接器设计用于输出指向本地文件的链接(并且仅当您在视图中包含
、
或
时),这会很棘手。我不是“我自己的解决方案”或grunt的狂热爱好者,但我更愿意完全采用grunt方式,也不在您的grunt中停用grunt,至少是执行资产副本并在模板文件中包含脚本标记的任务:)