背景介绍:

在一个AspNet MVC Web API的后端Web开发项目中,使用了Sencha6.5+作为前端表现技术。

在进行两种开发框架的物理文件整合的时候,笔者不想把他俩的物理文件都“揉”在一个文件夹下面。

想尽量隔离开来,方便前后端两类开人员,把精力只关注到自己的开发文件上。

具体配置:

1、在Asp.Net MVC Web API项目文件夹下,新建一个文件夹“extjs”(名称可以根据自己的需要,随意),把Sencha创建的前端项目文件都放置在此文件夹下。

2、接下主要是针对app.json文件的设置:

2.1  告诉Sencha,你的网站首页文件的相对路径:

"indexHtmlPath": "../index.html",

  

2.2 告诉Sencha,你的测试环境和生产环境在输出时,你的网站首页文件的相对路径,以及使用非嵌入的microloader:
"output": {
"page": "../../../../IndexOutput.htm",
"microloader": {
"path": "microloader.js",
"embed": false,
"enable": true
}
}

3、关于2.1里提到的index.html

该文件存在的目的,主要是为了提供一个嵌入式的microloader占位。

<script id="microloader" type="text/javascript"></script>

4、关于2.2里提到的IndexOutput.htm

该文件存在的目的,主要是为了提供一个网站首页输出。

<script  id="microloader" data-app="1900dd7d-7922-4a63-a091-ff81f79d5617" src="extjs/build/production/AppDemo/microloader.js"></script>

  注:上面是生产环境的发布路径。microloader.js文件,是因为我在2.2节提到的在app.json中设置了output/microloader/path,以及embed:false 产生。(因为我不喜欢把一堆启动脚本生成成首页文件中,我喜欢这样独立一点,这样,引用的时候就固定这个路径就好了)

5、网站真正的首页。

上面4,5,两节提到的 两个index.htm文件,他们的作用,我只用在的编译的时候,配合Sencha编译器使用。我们项目的真正的首页文件,在Asp.Net MVC项目的View视图目录下,打开主要代码如下所示:

    <!-- 开发版 -->
@*<script id="microloader" data-app="1900dd7d-7922-4a63-a091-ff81f79d5617" src="extjs/bootstrap.js"></script>*@
<!-- 测试版 -->
@*<script id="microloader" data-app="1900dd7d-7922-4a63-a091-ff81f79d5617" src="extjs/build/testing/AppDemo/microloader.js"></script>*@
<!-- 发布版 -->
<script id="microloader" data-app="1900dd7d-7922-4a63-a091-ff81f79d5617" src="extjs/build/production/AppDemo/microloader.js"></script> </head>

通过上面的一系列的设置,我的目标达到了。
1)在通常开发时,使用“开发版”的js脚本启动sencha框架。cmd使用 Sencha app watch配合开发。

2)在使用测试版本的时候,cmd使用sencha app build testing。使用“测试版本”的js脚本启动sencha框架。(编译为测试版本时,js会打包在一个js文件中,但不会混淆代码,代码还是可以很容易debug的)

3)在使用发布版本的时候,cmd使用sencha app build production。使用使用“发布版本”的js脚本启动sencha框架。

最近花了不少时间研究,年纪大了害怕忘记,特地文字记录一下。

如果有朋友需要,强烈建议结合实际操作。感觉写的相当的啰嗦。:)

The End.

 
 
 

[原创] 分享一下Sencha 三种环境(开发环境、测试环境、生产环境)的优雅配置方案的更多相关文章

  1. 【Spring】使用@Profile注解实现开发、测试和生产环境的配置和切换,看完这篇我彻底会了!!

    写在前面 在实际的企业开发环境中,往往都会将环境分为:开发环境.测试环境和生产环境,而每个环境基本上都是互相隔离的,也就是说,开发环境.测试环境和生产环境是互不相通的.在以前的开发过程中,如果开发人员 ...

  2. Spring.profile配合Jenkins发布War包,实现开发、测试和生产环境的按需切换

    前两篇不错 Spring.profile实现开发.测试和生产环境的配置和切换 - Strugglion - 博客园https://www.cnblogs.com/strugglion/p/709102 ...

  3. Maven 如何为不同的环境打包 —— 开发、测试和生产环境

    在开发过程中,我们的软件会面对不同的运行环境,比如开发环境.测试环境.生产环境,而我们的软件在不同的环境中,有的配置可能会不一样,比如数据源配置.日志文件配置.以及一些软件运行过程中的基本配置,那每次 ...

  4. Spring.profile实现开发、测试和生产环境的配置和切换

    软件开发过程一般涉及“开发 -> 测试 -> 部署上线”多个阶段,每个阶段的环境的配置参数会有不同,如数据源,文件路径等.为避免每次切换环境时都要进行参数配置等繁琐的操作,可以通过spri ...

  5. IDEA开发、测试、生产环境pom配置及使用

    pom文件 一般放在最下面,project里 <!--开发环境.测试环境.生产环境--> <!--生产环境--> <profiles> <profile> ...

  6. vue配置开发,测试,生产环境api

    npm run build 调用开发环境接口,打包开发环境npm run build:test 调用测试环境接口,打包测试环境npm run build:prod 调用生产环境接口,打包生产环境 vu ...

  7. vue中通过cross-env插件配置三种环境(开发,测试,生产)打包,不用切换api

    1. 话不多说,第一步就是安装必要的插件 npm install cross-env --save 2.修改config里面的参数,这里只展示一个test,其他类似 3.修改package.json ...

  8. [配置]VUE中通过process.env判断开发,测试和生产环境,并分环境配置不同的URL HOST

    本文链接:https://blog.csdn.net/tom_wong666/article/details/89763620 Tom哥的博客博文分类和索引页面地址:https://blog.csdn ...

  9. 【maven】之配置开发,测试,正式环境pom.xml文件

    在进行web程序开发,如果项目组没有使用自动化发布工具(jenkins + maven + svn + tomcat ),我们一般会使用maven的热部署来完成发布,在部署的过程中我们开发,测试,生产 ...

随机推荐

  1. mock单测

    mockMvc执行流程总结: 整个过程:1.mockMvc.perform执行一个请求:2.MockMvcRequestBuilders.get("/user/1")构造一个请求3 ...

  2. angular 使用服务共享数据需要注意

    在使用服务共享数据时,需要注意一些细节,否则会出现视图不刷新,也不报错这样的问题,遇到了,总结下 如下: <div ng-controller='ctr1'> <a href={{n ...

  3. as3 AIR 添加或删除ApplicationDirectory目录下文件

    AIR的文件目录静态类型有五种: File.userDirectory //指向用户文件夹 File.documentsDirectory //指向用户文档文件夹 File.desktopDirect ...

  4. as2 针对加载进来的swf操作

    如果加载的子swf,里面的东西会随时发生变化,那么as2获取的子swf宽高也会不停在变动. 解决方法,就是在子swf里面控制设置方法,当as2需要准确获取子swf宽高时,迫使子宽高恢复到原本样子,这样 ...

  5. Qt-状态机

    //以下示例是QT示例中的appchooser例子,使用状态机来进行图标的交互. #include <QtCore> #include <QtWidgets> class Pi ...

  6. 行矩阵列矩阵D3D&GL&U3D

    void Start () { //矩阵函数原型:Matrix4x4(Vector4 colum0, Vector4 colum1, Vector4 colum2, Vector4 colum3),这 ...

  7. centos7 /etc/profile /etc/bashrc

    在/etc/profile中添加环境变量后,是使用source /etc/profile编译后只能在当前终端生效 重新开启一个终端后,该环境变量失效. 解决方法: 重启系统:reboot,问题解决 环 ...

  8. linux下mongodb授权登录

    mongodb版本为3.2(目前最新),演示的是linux下的mongodb授权认证 第一次登录不启动授权(mongo默认不启动) ./mongod --dbpath=/home/db/data -- ...

  9. 可能空字符串转换为浮点型或者整数型:java.lang.NumberFormatException: For input string: " "

    Integer.valueOf(str.equals("")?"0":str)

  10. webdriver自动化脚本

    1.需求如下: 启动火狐浏览器首先打开百度,等待3秒然后打开博客首页,等待2秒然后关闭浏览器 from selenium import webdriver from time import sleep ...