框架:结合CSS和JS资源



我正在评估忍者框架。一个重要的产品特性似乎被忽略了,那就是为产品构建组合CSS和Javascript资源的能力。这是由忍者框架支持的吗?如果是,有配置的例子吗?

我为此调用gulp,并设置一个变量来指示FreeMarker模板文件中的开发模式/prod模式。在生产中,我包括了连接的& &;最小化版本,并在开发过程中使用常规文件。

为每个控制器添加以下过滤器:

public class GlobalFilter implements Filter {
    @Inject
    NinjaProperties ninjaProperties;
    public Result filter(FilterChain chain, Context context) {
        Result result = chain.next(context);
        if (isHtmlTemplate(result)) {
            result.render("isDevMode", ninjaProperties.isDev());
        }
        return result;
    }
} 

然后在你的基本/默认FreeMarker模板中,你可以根据dev/prod模式包含不同的CSS/JS文件:

<#if isDevMode?? && isDevMode>
    <link rel="stylesheet" type="text/css" href="/assets/css/bootstrap.css">
    <link rel="stylesheet" type="text/css" href="/assets/css/dataTables.bootstrap.css">
    <link rel="stylesheet" type="text/css" href="/assets/css/vis.css"/>
    <script src="/assets/js/jquery.js"></script>
    <script src="/assets/js/bootstrap.js"></script>
    <script src="/assets/js/jquery.dataTables.js"></script>
    <script src="/assets/js/moment.js"></script>
    <script src="/assets/js/vis.js"></script>
    <script src="/assets/js/dataTables.bootstrap.js"></script>
<#else>
    <link rel="stylesheet" type="text/css" href="/assets/css/main.min.css">
    <script src="/assets/js/main.min.js"></script>
</#if>

我找到了WRO项目,它看起来像使用标准Servlet过滤器来满足这个要求:

https://github.com/wro4j/wro4j

最新更新