我正在Phalcon中创建一个包含主题管理器的应用程序。主题只不过是.scss
和.volt
文件的集合。当然,这些.scss
是在使用之前构建的。
我一直在测试Phalcon的资产经理。除了创建自定义过滤器等方面的一些困难外,我开始想:为什么有人总是构建他们的文件?这将使每个请求的速度慢得多。Phalcon是否缓存这些资产?
此外,当开发主题或做大量前端工作时,观察源sass文件的更改是很有用的。这在法尔孔有可能吗?
根据手册,在资产收集中使用->setTargetPath()
可以将所有选定的文件保存到一个位置。如果你的页面中总是包含一些脚本,你可以将它们边缘化为一个文件,同时通过过滤器进行缩小。截取的代码有点像:
$controller->assets->collection('jsGlobal')
->addJs('libs/jquery.js', true)
->addJs('libs/jquery-ui.js', true)
->setTargetPath('js/global.js')
->setTargetUri('js/global.js')
->join(true)
->addFilter(new 'Phalcon'Assets'Filters'Jsmin());
您可能需要检查脚本是否已经在该js/global.js
位置下构建,以防止在生产中反复构建。通过这种方式,在制作部署脚本时,您可以只删除生产服务器上的某些文件。
我正在进行的项目使用less
。我们安装了'lessc
库来管理只在存储库中保留.less
文件。
同样,在开发模式中,我们甚至不检查文件是否被更改——我们假设是,并且总是重新编译它。出于生产目的,编写PHP是为了检查某些脚本是否存在,并且只有在不存在的情况下才编译.less
。