在gwt中添加外部js

时间:2013-12-02 06:10:50

标签: java javascript gwt

我在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>

2 个答案:

答案 0 :(得分:8)

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

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

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

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

  • 使用ScriptInjector。fromUrl()。

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

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

  • 最近添加到gwtquery的new way允许您将javascript包含为JSNI块,以便编译器可以对其进行优化和混淆。

我宁愿选择最后一个,因为它提供了更多优势。

答案 1 :(得分:1)

您可以在your_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>