在gwt中添加外部js

adding external js in gwt

本文关键字:外部 js 添加 gwt      更新时间:2024-02-07

我在GWT中编写并检查了js代码。为了检查,我在(projectName).html文件中添加了js代码,它就工作了。

但当我尝试添加外部js文件时,我得到了一个错误:

WARN] 404 - GET <path to js file>someJsFile.js (127.0.0.1) 1452 bytes
         Request headers

我将这一行添加到(projectName).gwt.xml文件:

<script src="src/main/resources/<projectName>/someJsFile.js"></script>

要使用此技术,必须将someJsFile.js放在public文件夹中,以便gwt编译器将其复制到放置html和js内容的最终文件夹中。

如果你正在使用maven,你必须检查资源插件是否正在将这个文件复制到war以及在哪个路径中。

顺便说一句,还有其他技术可以在文档中插入外部javascript:

  • 将脚本标记放置在.html文件中。

  • 使用ScriptInjector.fromUrl().

  • 更好的方法是使用TextResource和ScriptInjector.fromString(),以便编译器读取javascript文件并将内容包含在最终编译的文件中。

  • 您可以使用gwtquery-Ajax.getScript通过Ajax获取脚本,并将其注入到dom中。

  • 最近添加到gwtquery中的一种新方法允许您将javascript包含为JSNI块,以便编译器可以对其进行优化和模糊处理

我更喜欢最后一个,因为它提供了更多的优势。

您可以在_project.gwt.xml中定义哪些文件夹要作为公共文件夹包含。路径应该相对于xml:

resources/
 |-your_project.gwt.xml
 |-subfolder/
   |-stuff/
       |-images/
       |-js/
          |-someJsFile.js

在您的xml中添加:

<public path="subfolder/stuff" />

这应该将images/和js/文件夹复制到你的webapp目录中,你可以对js文件使用类似的东西

<script src="js/someJsFile.js"></script>