【发布时间】:2013-11-14 19:35:33
【问题描述】:
由于上传的硬性限制(即 10,000 次),尝试将我的应用程序部署到 appengine 失败。
我的应用程序正在使用其他 2 种语言的外部库和常量。请参考以下快照:
GWT.Async 块已放置在项目中的必要位置。
使用以下编译时选项: -localWorkers 3 -XfragmentCount 10
但问题是当我将项目上传到 appengine 时,出现以下异常:
**
java.io.IOException: 应用程序限制为 10000 个文件,你有 34731
**
我知道我可以通过降低跨浏览器兼容性或减少语言环境来减少文件数量。但这不是部署时的实用方法
所以请给我一些替代方案。
我想提到的另一件事是该项目在其大部分屏幕中广泛使用 VerticalPanel/HorizontalPanel/FlexTable/DialogBox。我不确定这是否与此问题有关。
【问题讨论】:
-
正如约翰在 Google+ 中问的,你有多少分割点?有多少排列?如果你有 100 个分割点和 100 个排列,那将产生超过 10,000 个 js/html 文件(加上各种图像,但这些图像不太可能被复制这么多次)。
-
我的最后一个问题部分由模块文件回答 - 5 个浏览器和三个(或四个包括默认值)语言环境,但这不包括您自己的其他模块,我们看不到屏幕截图为。
-
如果我理解正确的话,我有 5 种浏览器配置和三种不同的语言(包括英语)。我尝试保留一个浏览器并且没有自定义区域设置,它需要 20 次排列。所以总的来说,我需要 100 个没有自定义语言环境的排列。但是如果有 2 个额外的区域语言环境,这将上升到 300。这意味着将文件数保持在 10K 以下,我不应该有超过 30-32 个拆分点。在这里,我将每个 GWT.Async 块都算作一个。这个假设正确吗??
-
我知道你不能列出所有的文件,但你能快速分析一下吗?有多少个
.cache.html 文件(排列),有多少个 .cache.js 文件,最大的 N 是多少(即多少个分割点)。 20 perms + (20 perms * 30 split points = 600) 仍然不到你看到的数字的 10% - 我猜关于太多类文件的答案可能是真正的问题...... -
谢谢科林。但是在我的案例中生成的类是STATIC 文件夹中)。我修改了 appengine xml,通过添加“
”来忽略资源文件中的缓存文件。看来我现在已经解决了这个问题。
标签: java google-app-engine gwt