我有一个wicket应用程序,其中我在标记html中添加了javascript文件:
<script src="script/jquery.min.js" type="text/javascript"></script>
我的javascript文件不会放在我的.java或.html文件旁边,它们位于服务器的不同位置,如以前的脚本声明所示。
我的问题是:是否可以根据应用程序模式添加这些javascript文件? I.E.如果应用程序处于开发模式,请加载一个javascript文件,如果它正在生产中加载另一个。
谢谢!
PS:想法是加载&#34; min&#34;生产版本,但开发的扩展文件,所以调试变得可行
注意:在这里看到不同的答案我重申:问题是找不到wicket应用程序处于开发或部署模式时,我知道,但是关于如何更改html标记或添加不同的JavaScript资源
答案 0 :(得分:2)
扩展@rotsch的答案,你可以在wicket 1.5中使用:
@Override
public void renderHead(IHeaderResponse response) {
if(DEVELOPMENT)
response.renderString("<script type=\"text/javascript\" src=\"url1\"></script>");
else
response.renderString("<script type=\"text/javascript\" src=\"url2\"></script>");
}
答案 1 :(得分:1)
您可以使用以下代码找到您所处的模式:
RuntimeConfigurationType.DEPLOYMENT.equals(getApplication().getConfigurationType())
或
RuntimeConfigurationType.DEVELOPMENT.equals(getApplication().getConfigurationType())
答案 2 :(得分:1)
我使用这个目录布局:
resources
|---JQueryResource.java
|---jquery-1.6.4.js
|---jquery-1.6.4.min.js
使用这个课程:
public class JQueryResource {
/**
* Must be called in a RequestCycle.
*
* @return Url for the jQuery library.
*/
public static String getURL() {
if (Application.get().usesDevelopmentConfig()) {
Url url =
RequestCycle.get().mapUrlFor(
new PackageResourceReference(JQueryResource.class, "jquery-1.6.4.js"),
null);
return url.toString();
} else {
Url url =
RequestCycle.get().mapUrlFor(
new PackageResourceReference(JQueryResource.class,
"jquery-1.6.4.min.js"), null);
return url.toString();
}
}
}
这是我将资源添加到页面的方式。
@Override
public void renderHead(IHeaderResponse a_response) {
a_response.renderJavaScriptReference(JQueryResource.getURL());
}
答案 3 :(得分:0)
您可以使用pack:标记来压缩所有资源:http://sourceforge.net/projects/packtag/
在您的web.xml / .properties文件中,您可以根据生产模式指定是否打包。
答案 4 :(得分:0)
我在properties file
中设置了一个属性,我在启动VM时添加了路径。
然后我做了一个类似于PHP答案的其他内容。