Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/403.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在开发和生产wicket时添加不同的Javascript_Javascript_Wicket - Fatal编程技术网

如何在开发和生产wicket时添加不同的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

我有一个wicket应用程序,其中我在标记html中添加了javascript文件:

<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,那也很好。谢谢