arcgis for flex在离线环境下无法正常加载的问题及解决
此前有一个项目需要将原本基于flex开发的web gis项目在单机环境下部署,由于时间要求紧急,直接简单粗暴的将服务器环境部署上去,在搞定其他环境问题后终于部署成功,却在打开项目页面时死活加载不出来,在网上搜索了各种方法均没有解决问题,最后查到flex关于swz的缓存机制得到思路,并顺利解决了这个问题。
参考:https://newtamato.iteye.com/blog/421386
问题原因
简单来说,使用了RSL模式编译分离了框架文件,而导致在离线单机上测试时缺少了部分框架文件。
解决方法
1、复制一份缓存到服务器上
最简单粗暴的方法,直接从可正常运行的服务器上的指定目录将缓存复制一份下来,放到其他服务器的对应目录。
参考路径:C:\Documents and settings\用户名\Application Data\Adobe\Flash Player\AssetCache
缓存文件夹的名称是随机的,首次访问时会自动生成,且此缓存不会因浏览器清缓存而清除。
2、添加.swz的MIME类型
项目文件中已经存在框架文件了,那么只要在IIS中进行设置,缓存便会自动生成。
方法如下:IIS -> 网站 -> 属性 -> HTTP头 -> MIME类型 -> 新建 扩展名:.swz/ MIME类型:application/x-shockwave-flash -> 确定
3、编译项目时将“框架链接”设置为“合并到代码中”
这个方法需要重新编译项目,在编译时修改配置。
设置方法如下:项目->属性->Flex 构建路径->框架链接->合并到代码中
以上三种方法基本上可以解决此问题了。