我正在尝试使用
cfstatic.在我的index.cfm中,我只使用cfstatic添加green.css,cfstatic应该只添加green.css的最小化版本,所以我的h1文本< h1>我应该是绿色< / h1>应该是绿色.但cfstatic正在添加green.css和amp; 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并不完全熟悉,但我复制了你的例子并找到了这个
article on how package minification works.通过阅读和评论,我认为你可以采用这两种不同的方式;虽然我不能说他们是最好的(或唯一的)路线.
A)将样式拆分为自己的包(文件夹).其中,根据该文件夹将每个文件夹中的文件编译为一个缩小文件.
所以你可以像这样做一个目录结构……
assets -- css --- green ---- green.css --- red ---- red.css
编译后,缩小的文件将是green.min.css和red.min.css.
然后修改Application.cfc中的include,它调用green.css,就像这样 – application.cfstatic.include(‘/ css / green / green.css’,true);
B)在构造函数中设置minifyMode =“file”,它将在一个位置创建单独的缩小文件.
在这种情况下,您当前的index.cfm将按预期工作.
根据您正在使用的应用程序的复杂程度,我认为拆分包装是要走的路,除非它只是几个文件.
干杯.