ColdFusion cfstatic包含所有CSS文件

我正在尝试使用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/"
            );
    }
}

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>

Green.css

/* This is assets/css/green.css */
h1 {color:green;}

Red.css

/* This is assets/css/red.css */
h1 {color:red;}

我的浏览器输出是,

我的浏览器输出是


我对CFStatic并不完全熟悉,但我复制了你的例子,并且发现了这篇关于包缩小化如何工作的文章。 通过阅读和评论,我认为你可以采用这两种不同的方式; 尽管我不能说他们是最好的(或唯一的)路线。

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

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

assets
-- css
--- green
---- green.css
--- red
---- red.css

一旦编译完成,缩小的文件就是green.min.cssred.min.css

然后修改你的Application.cfc中的include,调用green.css,像这样 - application.cfstatic.include( '/css/green/green.css',true );

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

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

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

干杯。


我从来没有使用CFStatic,但它可能在renderIncludes() 。 你有没有尝试删除该行? 怎么了? 如果它不直接renderIncludes() ,则配置includeAllByDefault可能是关键。

从他们的文档:

默认包含所有文件(从0.2.2开始)

开箱即用,如果您从不使用.include()方法专门挑选要包含的文件(即,您只需执行.renderIncludes()),CfStatic将包含所有静态文件。 您可以通过将includeAllByDefault设置为false来更改此行为。

这句话似乎可能会好一点。 目前还不清楚这个函数是否需要渲染所有文件,或者这只是一个getAll(*Type*)函数。

链接地址: http://www.djcxy.com/p/82993.html

上一篇: ColdFusion cfstatic includes all CSS files

下一篇: Internet Explorer 11 doesn't enter fullscreen via Fullscreen API