我正在使用 Vaadin-7 而this的回答并不适用于我。
我正在尝试导入myproject/WebContent/js/test.js
下的js文件。我在我的UI类中使用了@JavaScript
,如下所示。
@Theme("myTheme")
@SuppressWarnings("serial")
@Title("VaadinTest")
@JavaScript("js/test.js")
public class VaadinTest extends UI {
@Override
protected void init(VaadinRequest request) {
final VerticalLayout layout = new VerticalLayout();
layout.setMargin(true);
setContent(layout);
}
}
但是我的firebug控制台出现了"NetworkError: 404 Not Found - http://localhost:8080/myproject/APP/PUBLISHED/js/test.js"
错误日志。
那么,如何从我的自定义目录导入js文件?
PS:请不要强迫我手动创建 APP / PUBLISHED / 目录!感谢。
答案 0 :(得分:15)
您可以使用app://
:
@JavaScript({ "app://js/test.js" })
或使用:
@JavaScript({ "vaadin://js/test.js" })
在VAADIN文件夹中生成的网址:
http://localhost:8080/myproject/VAADIN/js/test.js
答案 1 :(得分:3)
您引用的文件必须是类加载器相对于您使用它的软件包可以访问的。根据您的示例,假设您的VaadinTest
包是com.example.app
并且您要访问它作为js/test.js
,你必须把它放在" root"的目录com/example/app/js/test.js
中。让类加载器找到它(例如src/main/java,groovy
或从配置中加载资源的位置)。