Ninjaframework:结合CSS和JS资源
Ninjaframework: Combining CSS and JS resources
我正在评估 ninjaframework。似乎缺少的一项重要生产功能是将 CSS 和 Javascript 资源组合用于生产构建的能力。 ninjaframework 是否支持此功能?如果支持,是否有可用的配置示例?
我发现 WRO 项目看起来可以使用标准 Servlet 过滤器来满足此要求:
我为此调用了 gulp,并在 FreeMarker 模板文件中设置了一个变量来指示开发 mode/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;
}
}
然后在您的 base/default 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>
我正在评估 ninjaframework。似乎缺少的一项重要生产功能是将 CSS 和 Javascript 资源组合用于生产构建的能力。 ninjaframework 是否支持此功能?如果支持,是否有可用的配置示例?
我发现 WRO 项目看起来可以使用标准 Servlet 过滤器来满足此要求:
我为此调用了 gulp,并在 FreeMarker 模板文件中设置了一个变量来指示开发 mode/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;
}
}
然后在您的 base/default 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>