将Ext JS 5应用程序导入Web项目以及实现本地化
在Ext JS 5,使用了新的脚本和样式加载方式,这对于将应用程序导入到Web项目中产生了点小麻烦。而对于本地化文件的导入,也采用了新的方式,本文将一一解答这些问题。
将Ext JS 5应用程序导入Web项目
在Ext JS 5,会使用bootstrap.js来加载应用程序脚本和样式,而bootstrap.js是根据Bootstrap.json来加载样式文件和脚本的。问题就在这个Bootstrap.json文件上,如果是使用IIS的Web项目,首先会碰到的问题是Web服务器不允许下载JSON文件,这时候,就得先解决这个问题,不然加载肯定会出错。
如果认真研究一下bootstrap.js文件,会发现它主要用来获取脚本和样式文件的地方是Bootstrap.json中的js和css成员值。在自动生成的Bootstrap.json文件中,脚本和样式文件的默认路径就是没有路径,也就是与首页文件是同一路径,这样,当首页文件与脚本和样式文件不在同一路径,就加载不了脚本和样式了。由于Bootstrap.json文件中要加载的脚本文件很多,要直接修改Bootstrap.json文件中的文件的路径,不太现实。那就只能在bootstrap.js文件中找寻解决方案了。
在bootstrap.js文件中,Ext.Microloader的load方法会读取Bootstrap.json中的js和css成员的值,然后将这些值通过以下语句将脚本和样式文件的加载路径放到一个数组内:
urls.push(resource.path);
以上语句并没有对脚本或文件的路径进行任何修改,直接就放到加载数组里了,这样在首页文件与脚本不在同一路径的时候肯定会出错,因而,要修正这个问题,只要修改这句就行了,也就是为要加载的脚本和样式加上一个合适的路径。再研究下bootstrap.js文件,会发现在Boot的init方法中,会把bootstrap.js在首页中的路径保存在Boot.baseUrl中,而bootstrap.js的路径是与bootstrap.json的路径是相同的,也就是说bootstrap.json中要加载的脚本和样式的相对路径与bootstrap.js的相对路径是一样的,因而,将上面的代码修改为以下代码就能正确加载脚本和样式了:
urls.push(Boot.baseUrl + resource.path);
以上只是解决了Ext JS的框架文件和样式的路径,对于应用程序本身的类文件来说,他们的路径还是错误 ,而要修正这个错误,很简单,只需要在app.js和app\application.js中添加appFolder来指定应用程序等待命名空间的路径就行了,例如,脚本是放在Web项目的Scripts目录的,则代码如下:
appFolder : 'scripts/app',
经过以上修改,就可以将应用程序正确的导入Web项目了。
本地化
由于采用了bootstrap.js文件来启动应用程序,因而不建议再采用之前的直接在页面中加载本地化文件的方式来加载本地化文件,而且,这样的加载方式还存在先加载应用程序,再加载本地化文件的加载顺序问题,可能会出现意想不到的错误。
在Ext JS 5,要正确加入本地化文件,需要修改app.json文件,在app.json的requires成员数组中添加ext-locale,意思就是应用程序要求加载本地化包,但没具体说要加载那个本地化包,因而,还需要添加locale成员,来指定需要加载哪个本地化包,如果只加载简体包,值可以是zh_CN,如果要加载多个本地化包,则值可以是数组,将本地化包的特征代码加入其中,具体例子如下:
"requires": [
'ext-locale'
],
"locale": "zh_CN",
修改app.json文件之后,还需要执行一次sencha app build命令才能实现本地化。
发布
应用程序使用sencha app build命令打包后,还是会存在路径问题。这时候,bootstrap.js文件会以压缩形式放在首页里,要修改它不太容易,但这时候bootstrap.js会以app.json为脚本文件和样式文件的加载依据,而这时候的app.json文件只需要两个一个脚本文件app.js和一个样式文件MyApp-all.css,因而直接修改app.json文件中这两个文件的路径就行了。
将Ext JS 5应用程序导入Web项目以及实现本地化的更多相关文章
- 将Ext JS 6应用程序导入Web项目
由于Ext JS 6包含了Sencha Touch,因而在应用程序结构有了些改变,Ext JS 5的方法已经不适用于新版本了.经过研究,发现6导入Web项目要比5简单. 下面来说说导入的过程. 使用S ...
- 将Ext JS 5应用程序导入Web项目中
相关资料:http://docs.sencha.com/extjs/5.1/getting_started/welcome_to_extjs.html 原文地址: https://blog.csdn. ...
- eclipse 导入web项目后,线程假死
eclipse 导入web项目后,就出现关闭后,线程还存在的情况.使用java mission control 查看发现java script indexing线程在running. 关闭js验证后, ...
- Eclipse 如何导入web项目
Eclipse 如何导入web项目 CreateTime--2018年3月8日09:07:16 Author:Marydon 方法一:推荐使用 1.将web项目手动拷贝到Eclipse的工作空间下 ...
- Eclipse导入web项目发布项目时报Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java EE 5 and 6 Web错误解决方案
Eclipse导入web项目后,将web项目加载到server进行发布时,提示Tomcat version 7.0 only supports J2EE 1.2, 1.3, 1.4, and Java ...
- Eclipse导入web项目后,run列表中没有run on server?
Eclipse导入web项目,没有run列表中run on server? 首先确保正确安装Tomcat和JDK .找到对于web项目的文件夹,打开文件夹下.project文件 <?xml ve ...
- 在Ext JS 5应用程序中如何使用路由
简介 Ext JS 5是一个重要的发布版本,它提供了许多新特性来创建丰富的.企业级的Web应用程序.MVVM和双向数据绑定为开发人员承担了大量的繁重工作.在Ext JS 5种,另一个新特性就是路由,它 ...
- 【翻译】在Ext JS 5应用程序中怎样使用路由
原文:How to Use Routing in Your Ext JS 5 Apps 简单介绍 Ext JS 5是一个重要的公布版本号,它提供了很多新特性来创建丰富的.企业级的Web应用程序.MVV ...
- 【翻译】针对多种设备定制Ext JS 5应用程序
原文:Tailoring Your Ext JS 5 Application for a Multi-Device World 概述 鉴于当今设备和表单因素的扩散,要针对所有这些可能性来优化应用程序已 ...
随机推荐
- MacOS下安装rvm的几点注意
如果用以下链接无法下载的话: curl -sSL https://get.rvm.io | bash -s stable #或者 curl -L https://rvm.io | bash -s st ...
- Android开发技巧——使用Drawable实现小红点
在产品的设计中,总难免需要我们开发去实现各种各样的小红点,小红点,小红点. 通常,我们可能会这样做: 用一个View实现小红点,放在相对布局里,设置好内边距或外边距,让它位于图片的右上角. 或者是给图 ...
- iOS 中隐藏UITableView最后一条分隔线
如何优雅的隐藏UITableView中最后一条分割线? 这个问题是很常见,却又不太容易解决的. 可能通常的做法都是隐藏UITableView的分割线,自定义一条. 最近在使用弹出菜单的时候,同样遇到了 ...
- 一起聊聊什么是P问题、NP问题、NPC问题
概念 P问题:如果一个问题可以找到一个能在多项式的时间里解决它的算法,那么这个问题就属于P问题.通常NOI和NOIP不属于P类问题,我们常见到的一些信息奥赛的题目都是P问题. NP问题:可以在多项式的 ...
- 使用java操作HDFS
新建Java Project; 1,右击项目,属性,Java Build Path,Libraries,Add External JARs(haddopp根目录下的所以jar): 2,做一下项目关联, ...
- PHP+MySQL 分页那点事
分页技术随处可见,这可以算得上是最为基础的网站功能了.于是今天尝试着用PHP来实现一个分页的小例子. 准备工作 环境准备 Apache MySQL PHP 工作环境 数据库准备 建库 建表 预存数据 ...
- ROS(indigo) turtlebot2 + android一些有趣应用
ROS和Android配合使用非常有趣,这里推荐,ROSClinet,使用rosbridge让android和ROS通信: 具体参考奥斯卡的个人剧场:http://xxhong.net/ turtle ...
- clang-format中文出错
clang-format中文出错(金庆的专栏)VS2015 Community + clang-format(Visual Studio plugin installer, based on SVN ...
- FORM调用FORM(标准调客户化&客户化调标准)并执行查询的实现研究
一.先来个比较简单的,标准FORM调用客户话FORM并执行查询 1.修改CUSTOM.PLL,使用 fnd_function.execute实现打开和传递参数 参考例子如下 PROCEDURE eve ...
- Html书写规范,基本标签使用
一.html简介1.html是什么Html是用来描述网页的一种语言.(1)HTML 指的是超文本标记语言 (Hyper Text Markup Language)(2)HTML 不是一种编程语言,而是 ...