如何在开发和生产检票口添加不同的Javascript

时间:2011-11-23 14:05:21

标签: javascript wicket

我有一个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资源

5 个答案:

答案 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>");

}

https://cwiki.apache.org/WICKET/migration-to-wicket-15.html#MigrationtoWicket1.5-RemovedHeaderContributorandfriends

答案 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答案的其他内容。