如何在开发和生产wicket时添加不同的Javascript
我有一个wicket应用程序,其中我在标记html中添加了javascript文件:如何在开发和生产wicket时添加不同的Javascript,javascript,wicket,Javascript,Wicket,我有一个wicket应用程序,其中我在标记html中添加了javascript文件: <script src="script/jquery.min.js" type="text/javascript"></script> 我的javascript文件不放在.java或.html文件旁边,它们位于服务器中的不同位置,如前面的脚本声明所示 我的问题是:是否可以根据应用程序模式添加这些javascript文件?也就是说,如果应用程序处于开发模式,则加载一个javascri
<script src="script/jquery.min.js" type="text/javascript"></script>
我的javascript文件不放在.java或.html文件旁边,它们位于服务器中的不同位置,如前面的脚本声明所示
我的问题是:是否可以根据应用程序模式添加这些javascript文件?也就是说,如果应用程序处于开发模式,则加载一个javascript文件,如果它处于生产模式,则加载另一个
谢谢
PS:想法是在生产中加载“min”版本,但在开发中加载扩展文件,这样就可以进行调试了
注意:我在这里看到不同的答案:问题不在于wicket应用程序何时处于开发或部署模式,我知道这一点,而在于如何更改html标记或添加不同的JavaScript资源您可以通过以下代码了解您处于哪种模式:
RuntimeConfigurationType.DEPLOYMENT.equals(getApplication().getConfigurationType())
或
RuntimeConfigurationType.DEVELOPMENT.equals(getApplication().getConfigurationType())
您可以使用pack:tag压缩所有资源:
在web.xml/.properties文件中,您可以根据生产模式指定是否打包。我在
属性文件中设置了一个属性,并在启动VM时添加到路径中
然后,我做了一个类似于PHP答案的if-else。扩展@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>");
}
@覆盖
公共无效renderHead(IHeaderResponse响应){
国际单项体育联合会(发展)
响应。渲染字符串(“”);
其他的
响应。渲染字符串(“”);
}
.我使用此目录布局:
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());
}
我知道,但是在知道了我想要添加的类型之后,我知道,我需要添加一些不同的文件,在wicketor中,甚至更干净,使用renderHead
方法,虽然我更喜欢@osdamv answer,因为我没有相同的目录布局,我的.js文件存储在远离.java文件的地方,因此我需要使用URL引用它们。如果您知道如何使用您的方法获取这样的URL,那也很好。谢谢