ColdFusion cfstatic包含所有CSS文件

JS *_*rah 7 css coldfusion cfstatic

我正在尝试使用cfstatic.在我的index.cfm中,我只使用cfstatic添加green.css,cfstatic应该只添加green.css的最小化版本,所以我的h1文本<h1>I should be Green</h1>应该是绿色.但cfstatic正在添加green.css和red.css.我错过了配置吗?

的Application.cfc

component output="false"{

    This.name = "testing";
    This.sessionManagement = true;
    This.sessionTimeout = CreateTimeSpan(1, 23, 59, 59);
    This.mappings["/org"] = expandpath('.')&'\org'; 

function onRequestStart(){


    application.cfstatic = CreateObject( 'org.cfstatic.CfStatic' )
        .init(  staticDirectory = ExpandPath('./assets'), 
                staticUrl       = "/cfstatic/assets/"
            );
    }
}
Run Code Online (Sandbox Code Playgroud)

Index.cfm

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Test</title>
    <cfscript>
        application.cfstatic.include( '/css/green.css',true );
    </cfscript>

<cfoutput>#application.cfstatic.renderIncludes('css')#</cfoutput>

</head>
<body>
    <h1>I should be Green</h1>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)

Green.css

/* This is assets/css/green.css */
h1 {color:green;}
Run Code Online (Sandbox Code Playgroud)

Red.css

/* This is assets/css/red.css */
h1 {color:red;}
Run Code Online (Sandbox Code Playgroud)

我的浏览器输出是,

我的浏览器输出是

Ton*_*kes 3

我并不完全熟悉 CFStatic,但我复制了您的示例并找到了这篇关于包缩小如何工作的文章。通读它和评论,我认为你可以用两种不同的方式来解决这个问题;尽管我不能说它们是最好的(或唯一的)路线。

A)将样式拆分到它们自己的包(文件夹)中。它将每个文件夹中的文件编译成基于该文件夹的一个缩小文件。

所以你可以做这样的目录结构......

assets
-- css
--- green
---- green.css
--- red
---- red.css
Run Code Online (Sandbox Code Playgroud)

编译后,缩小的文件将是green.min.cssred.min.css

然后修改 Application.cfc 中调用 green.css 的包含内容,如下所示 -application.cfstatic.include( '/css/green/green.css',true );

B)在构造函数中设置minifyMode="file",它将在一个位置创建单独的缩小文件。

在这种情况下,您当前的 index.cfm 将按预期工作。

根据您正在使用的应用程序的复杂程度,我认为拆分打包是可行的方法,除非它只有几个文件。

干杯。