【问题标题】:Ninjaframework: Combining CSS and JS resourcesNinjaframework:结合 CSS 和 JS 资源
【发布时间】:2015-12-09 16:07:37
【问题描述】:

我正在评估 ninjaframework。似乎缺少的一项重要生产功能是结合 CSS 和 Javascript 资源进行生产构建的能力。 ninjaframework 是否支持这一点,如果支持,是否有可用的配置示例?

【问题讨论】:

    标签: java ninjaframework


    【解决方案1】:

    我为此呼吁 gulp,并在 FreeMarker 模板文件中设置了一个变量来指示开发模式/生产模式。在生产中,我包含串联和最小化的版本,在开发过程中,我包含常规文件。

    给每个控制器添加这个过滤器:

    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>
    

    【讨论】:

      【解决方案2】:

      我发现WRO 项目看起来可以使用标准的 Servlet 过滤器来满足这个要求:

      https://github.com/wro4j/wro4j

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-01-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多