问题标签 [clientbundle]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gwt - 从模板中的数据源渲染图像
我想在模板中呈现源自 ClientBundle 的图像。但我得到的是:
我检查了数据源的内容,如果我将图像 (data:image/png;base64...) 复制到 {0} 中,它就可以工作。
如果我将它作为参数传递,为什么它不起作用?
gwt - GWT ImageResource 背景位置
我正在尝试在使用 UIBinder 的 GWT 中使用单个 .png 作为具有悬停效果(a la this)的按钮,但我遇到了困难。
这是我的 ui.xml 文件:
我能够将 .png 捆绑并显示在浏览器中就好了。但是,我的 :hover CSS 没有按预期工作。当我悬停时,它确实会在图像周围显示一个蓝色边框,所以我知道 CSS 正在工作,但图像不会改变。
看起来捆绑的图像像0 0
元素样式本身一样覆盖了背景位置属性,这否定了我的类级样式。有没有办法告诉 GWT 不要为捆绑的 ImageResource 设置背景位置?还是有更好的方法来完全做到这一点?
谢谢。
gwt - GWT ClientBundle 缓存如何工作?
我试图更好地理解 GWT ClientBundle 和缓存的使用。
例如,如果我有一个大文本文件,我想提供给我的客户,我可以使用
这是否意味着客户端第一次运行应用程序时会从服务器下载文件“myText.txt”,然后将该文件存储在浏览器的缓存中,以便将来使用该应用程序时,该文件不会需要下载吗?
如果是这样,如果我更改“myText.txt”会发生什么,应用程序是否知道获取新版本?
最后,如果文件确实存储在缓存中,那么这与 HTML5 中的本地存储有何不同?
谢谢。
gwt - GWT ImageResource @source 项目文件夹外的路径
在我的项目中,我使用的是项目中使用的ClientBundle
图像。我将使用的图像已被其他非gwt
项目(一个Flex
Web 应用程序)使用,因此这些图像放置在我的gwt
项目外部的单个目录中。
等级制度:
在我的 CImageResource 类中:
gwt 说“资源文件丢失”。
我如何在ClientBundle
课堂上使用图像?尽可能地,如果有办法访问它,我不想复制我将在我的项目文件夹中使用的图像。
gwt - 一种通过 ImageBundle 反转 sprite 合成过程并将生成的 sprite 拆分回图像片段的工具
是否有任何工具(也许GWT 编译器本身可以用作独立应用程序)用于从*.cache.png
编译期间创建的文件生成单个图像?
或者,是否可以通过 API 获得映射信息(用于精灵几何图形)?
我查找了GWT 存储库、文档、StackOverflow 上的信息,可能还有关于该主题的每个 google 组,但无济于事。
动机
我的目标是通过指示 GWT 编译器避免内联捆绑图片(<set-property name="ClientBundle.enableInlining" value="false" />
使用图形设计师只编辑打包 WAR 中的图像资产(希望通过提供这样的工具使他/她更容易一些)。
设计师将使用提供的工具来拆卸和重新组装精灵图像,以便于编辑。
插图
java - ClientBundle.enableInlining 和 ClientBundle.enableRenaming?
我最近在杠杆和旋钮部分阅读了这篇文章,请参阅以下两个条目:ClientBundle
- ClientBundle.enableInlining 是一个延迟绑定属性,可用于禁用数据:浏览器中的 URL,否则将支持将资源数据内联到已编译的 JS 中。
- ClientBundle.enableRenaming 是一个配置属性,它将禁用强命名缓存文件的使用。
我很难将这些在行动中可视化并理解它们的作用。你在哪里设置这些属性?为什么要设置它们(即,我什么时候想要“禁用数据的使用”或“禁用强命名缓存文件的使用”)?有人可以为我提供一个真实的用例和一些代码片段吗?提前致谢!
java - ClientBundles 和资源:它们是什么以及为什么使用它们?他们解决了什么问题?
我也是全新的 GWT,无论我读了多少关于s的官方文档,ClientBundle
我似乎都无法理解它们是什么以及它们做什么。CssResource
, DataResource
, TextResource
,GWTCreateResource
等也是如此。
我认为它们作为静态文件(如 CSS、JavaScript 或一些静态数据源,如 JSON 文件)的某种性能优化存在。显然,它们也是“可注入的”,如果它们应该是静态 CSS/JS/JSON/等,这对我来说没有意义。文件...
所以我问:有人可以给我一个脚踏实地的,简单的,国王的英语,简单的解释这些对象是什么,以及它们是如何使用的?我是否可以大胆地要求提供一个实际注入的工作示例(上面链接中的代码片段谈到了注入,但从未真正展示过它!)?这些如何映射到实际文件(my-styles.css
,dataTable-static-data.json
等)?事实上,我认为这是我最大的心理障碍:将这些 Java 对象与它们所代表的静态文件联系起来。
还有,为什么要捆绑?跨其他项目的可重用性?也许这就是可注射性发挥作用的地方?我很混乱。
java - 使用 Locale 和 ClientBundle 的 GWT 多租户支持
我正在尝试为我现有的 GWT 应用程序带来多租户功能。要求如下
- 使用公司特定的 CSS 和图像
- 文字改动不大
- 对实际应用程序逻辑的一些更改
目前,我的应用程序有一个 ClientBundle,其中包括所有图像和 CSS,并通过静态常量访问:
我的文本都在一个大型 Java 属性文件中,该文件被解析为GWT 消息接口。
我的想法是为文本设置不同的语言环境并通过 URL 参数确定语言环境。我仍然不确定如何根据公司加载不同的 ClientBundle。我是否需要创建一个抽象 ClientBundle 并将其继承到 CompanyA 和 CompanyB ClientBundles 中?
我的主要问题是,这是否是一个好的解决方案,或者是否还有其他我优雅的方式。
java - GWT GIN 在一张图片中绑定多个 ClientBundle 和 ImageResource 以快速加载应用程序
我在我的应用程序中使用 GWT。对于缓存图片,我使用带有 ImageResource 的 ClientBundle。我有很多这样的 ClientBundle:
以及数百个具有相同方法的 ClientBundle,如下所示:
结果,我在服务器上有数百张图片,例如“* .cache.png”。为了快速加载,我需要更少的图片。为此,我找到了决定:
还有Ginjector,......但问题是:
ClientBundlePack1中的MenuBundle、NatureFuture等类编译成一张大图(好),但是House1、House2、House3等House没有编译成一张大图(不好)。
房屋将每个班级房屋编译在一张图片中。我在扩展实现的 java 方式中看到了问题,只使用一种像 pic1 一样的方法,而不是使用所有方法 pic1。
但我需要在一张照片中加入所有房屋。GIN 有设置、注释可以做到这一点。或者有没有其他方法可以加入所有的房子?但是我不能重写 Houses 的代码,它会破坏我的应用程序的架构。我需要在预加载后立即所有房屋,而不是“延迟加载”。
谢谢。
gwt - GWT,CssStyle被多次注入
我使用 ClientBundle 和 CssResources 已经有一段时间了,但注意到我的样式被注入了很多次。我也可以指出的一件事是我使用了很多<ui:with field='resources' type='com.vf.client.resources.Resources' />
在我的模板中,我怀疑这是在创建我的 clientBundle 的多个副本。甚至可能导致这种情况的一件事是,我使用了 Ray Ryan 将我的视图缓存在我的客户端工厂中的概念,因此某些视图是在附加到 DOM 之前创建的。在我的基本视图中,我在资源上使用提供的=true,以便希望不要让 UiBinder 为我生成一个新的。这可能不起作用,我怀疑并且 ui:with 正在创建一个新副本并忽略提供的=true。我在 Chrome 和 Firebug 中使用了开发人员工具来查看,在这两种情况下,样式都被注入了很多次。不知道如何在不从我的所有 UiBinder 模板中删除我的 Resources 类的情况下解决这个问题,这会做很多工作。任何想法表示赞赏。
更新
我一直在使用工厂/单例,只是为了确保它只创建一个。当应用程序启动时,我在我的 ClientFactory 实现中创建了这个 Resources ClientBundle。在我的应用程序开始时,我在我的风格上调用 ensureEnjected,从那时起,我的代码中永远不会调用 ensureInjected。
这是我的工厂,它只是获取我的单身请求工厂。我曾经在我的界面中使用静态初始化程序,但不久前我搬到了这里,希望能解决我的多种样式问题。
我的客户端包仅在此处初始化和注入。