Php Phalcon资产管理正在为同一文件创建2个请求
我有以下代码:Php Phalcon资产管理正在为同一文件创建2个请求,php,css,assets,phalcon,Php,Css,Assets,Phalcon,我有以下代码: $this->assets ->collection('header') ->setTargetPath('css/final.css') ->setTargetUri('css/final.css') ->addCss('css/base/base.css') // Use the built-in Cssmin filter ->
$this->assets
->collection('header')
->setTargetPath('css/final.css')
->setTargetUri('css/final.css')
->addCss('css/base/base.css')
// Use the built-in Cssmin filter
->addFilter(new \Phalcon\Assets\Filters\Cssmin);
发生的情况是,当请求页面时,有两个相同的请求指向相同的final.css文件,但是html源代码只有一个指向css文件的链接
如果您能提供任何帮助,我们将不胜感激。如果在“发送前”之后发送转发,则会发生这种情况;基本控制器将初始化两次。如果您查看控制器是否已初始化,则将编译您的资产。如果您随后转发到另一个控制器,该控制器将被初始化,您的资产将再次编译 我使用了两种解决方案:在资产上放置一个isInitialized标志并将其作为路由参数传递给forward,以防止其再次初始化,或者将资产编译移动到dependencyInjector上的服务。我认为phalcon的文档并没有真正明确说明,如果您遵循baseController示例,每次都会编译您的资产。我们大多数人都将asset manager用作静态的“全部编译”,其中baseController方法允许动态包含资产——这似乎是个好主意,但通常只需缩小所有资源一次并将其作为静态文件发送即可,在这种情况下,baseController中的资产会增加开销。您可以检查(!$this->dispatcher->wasForwarded()){/*创建集合*/}