[ExtJS5学习笔记]第三十一节 sencha extjs 5使用cmd生成的工程部署到tomcat服务器

简介:

本文作者:sushengmiyan

------------------------------------------------------------------------------------------------------------------------------------

使用sencha cmd build app 生成的工程,我们期望只使用cmd打包好之后的那一个压缩后的js,而不用将体积庞大的所有ext代码都部署。

试了一下ext的官方例子,打包之后,我们使用build\production\yourappname 目录下的文件都可以了。将这个目录下的文件部署到tomcat下,增加WEBINFO和下面的web.xml文件。启动tomcat.

使用cmd生成默认的例子,部署了一下,发现可以正常运行。


总结一下:使用纯净的ext产生的文件,使用cmd打包之后,将所有文件都压缩了,在没有涉及到后台交互的情况下,直接将build下那个工程的文件拷贝到tomcat即可正常运行你所编写的程序,而且这样,也不会将你的源代码直接发布。


提交一个部署中遇到的问题,打包之后,发布到tomcat 启动报错,内容如下:

NetworkError: 404 Not Found - 

http://localhost:8080/extoa/.js?doc=142183145561

TypeError: c is not a constructor
return new c(a[0])


深入查看后,发现问题出在我使用了ext.define动态去创建类,但是这个类又不在我本地硬盘上有对应的js文件,cmd打包的时候又要根据这个define的路径去找我的类,结果就没有找到,于是加载 空.js 所以会报错。错误示例代码如下:

		getModelByViewModel: function(viewModelConfig) {
		  var me = this;
		  var modelClass = 'oaSystem.model.auto.' + viewModelConfig.data.modelName;
		  return Ext.ClassManager.get(modelClass) || Ext.define(modelClass, {
								extend: 'Ext.data.Model',
								idProperty: viewModelConfig.data.primaryKey,     // 设置模块model的主键
								nameFields: viewModelConfig.data.nameField,      // 设置模块model的名称字段
								identifier: viewModelConfig.data.keygenType,     // 设置模块model的主键生成方式
								fields: me.getModelFields(viewModelConfig.data.fields), // 设置字段
								                // 取得主键值
								getIdValue: function () {
									return this.get(this.idProperty);
								},

								// 取得当前记录的名字字段
								getNameValue: function () {
									if (this.nameFields)
										return this.get(this.nameFields);
									else
										return null;
								}
		  })
		}, 

modelClass为动态获取,动态创建这个类,cmd打包之后,根据这个类名去找js文件,结果没有找到。所以报错


在不打包的情况下,这个方法是可行的...


解决方法暂时想到使用集合方式,如下:

	 dataModels: new Ext.util.MixedCollection,//键值对集合,可以集合json数据
	//1. 通过data中fields配置生成一个DataModel
	getModelByViewModel: function(viewModelConfig) {
		console.log('11111 im here come to catche me!');
	  var me = this;
	  if (viewModelConfig)
	  {
	  }else
	   viewModelConfig  = this.viewModelConfig;
	  
	  var modelClass = 'oaSystem.model.auto.' + viewModelConfig.data.modelName;
	  //var modelClassAlias = viewModelConfig.data.modelName;
	  //debugger;
	  if (this.dataModels.get(modelClass)){
		  return this.dataModels.get(modelClass)
	  }else{
         console.log('ccc  im here come to catche me!');
		 var abc = Ext.widget('modeldatamodel', {
							idProperty: viewModelConfig.data.primaryKey,     // 设置模块model的主键
							nameFields: viewModelConfig.data.nameField,      // 设置模块model的名称字段
							identifier: viewModelConfig.data.keygenType,     // 设置模块model的主键生成方式
							fields: me.getModelFields(viewModelConfig.data.fields) // 设置字段
							
	     });
		 this.dataModels.add(modelClass,abc);
		 return abc;
	  }
	}, 

这样cmd再打包就不会出错了,先定义一个oaSystem.model.DataModel这个基类。然后判断是否存在再生成。
相关文章
|
16天前
|
监控 安全 Linux
RHEL 环境下 Subversion 服务器部署与配置
【10月更文挑战第18天】在RHEL环境下部署Subversion服务器需依次完成安装Subversion、创建版本库、配置服务器、启动服务、客户端连接及备份维护等步骤。确保遵循安全最佳实践,保障数据安全。
|
6天前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
80 2
|
7天前
|
NoSQL Linux PHP
|
7天前
|
弹性计算 数据库连接 Nacos
阿里云ECS服务器在docker中部署nacos
docker pull nacos 失败,docker部署nacos遇到的问题,nacos数据库连接,nacos端口映射
44 1
|
13天前
|
监控 网络安全 调度
Quartz.Net整合NetCore3.1,部署到IIS服务器上后台定时Job不被调度的解决方案
解决Quartz.NET在.NET Core 3.1应用中部署到IIS服务器上不被调度的问题,通常需要综合考虑应用配置、IIS设置、日志分析等多个方面。采用上述策略,结合细致的测试和监控,可以有效地提高定时任务的稳定性和可靠性。在实施任何更改后,务必进行充分的测试,以验证问题是否得到解决,并监控生产环境的表现,确保长期稳定性。
27 1
|
弹性计算 运维 安全
阿里云云服务器ECS介绍 学习笔记
阿里云云服务器ECS介绍 学习笔记
174 0
|
15天前
|
存储 弹性计算 安全
阿里云第七代云服务器ECS性能、适用场景与价格参考
阿里云第七代云服务器ECS(Elastic Compute Service)作为阿里云最新一代的高性能计算产品,凭借其基于最新硬件架构和虚拟化技术的全面升级,在计算能力、存储性能、网络传输速度以及灵活性等多个方面实现了显著提升。这一代云服务器旨在为用户提供更为强大、稳定且可定制的云端基础设施服务,广泛适用于从基础的Web托管到复杂的高性能计算等多种应用场景。
|
14天前
|
弹性计算 网络安全
阿里云国际OpenAPI多接口快速管理ECS服务器教程
阿里云国际OpenAPI多接口快速管理ECS服务器教程
|
3天前
|
存储 弹性计算 NoSQL
"从入门到实践,全方位解析云服务器ECS的秘密——手把手教你轻松驾驭阿里云的强大计算力!"
【10月更文挑战第23天】云服务器ECS(Elastic Compute Service)是阿里云提供的基础云计算服务,允许用户在云端租用和管理虚拟服务器。ECS具有弹性伸缩、按需付费、简单易用等特点,适用于网站托管、数据库部署、大数据分析等多种场景。本文介绍ECS的基本概念、使用场景及快速上手指南。
17 3
|
8天前
|
存储 弹性计算 编解码
通过阿里云的活动租赁云服务器时如何选择实例规格?选择指南参考
新手用户通过阿里云的活动租赁云服务器的时候实例规格应该怎么选?目前在阿里云的活动中,可选的云服务器类型除了轻量应用服务器之外,云服务器的主要实例规格有经济型e、通用算力型u1和计算型c7与c8y、通用型g7与g8y、内存型r7与r8y等实例,但是对于新手来说,由于是初次购买,实例规格往往不知道怎么选择了。本文为大家展示阿里云目前活动中各云服务器实例规格性能、适用场景以及选择指南参考。