如何使用assetic将图像复制到web文件夹


How to copy images to web folder with assetic

我不敢相信我不能用谷歌搜索这个。。。

因此,我有了一个symfony2应用程序,并将jQuery UIComposer一起安装。这意味着我有这样的项目结构:

/app/
/src/
/vendor/components/jqueryui/
/web/

我已经设置了资产,可以将js/css文件从供应商文件夹复制到web。这很好。配置:

assetic:
    assets:
        javascripts:
            inputs:
                - %kernel.root_dir%/../vendor/components/jquery/jquery.js
                - %kernel.root_dir%/../vendor/components/jqueryui/ui/jquery-ui.js
                - %kernel.root_dir%/../vendor/components/jqueryui/ui/i18n/jquery.ui.datepicker-cs.js
        stylesheets:
            inputs:
                - %kernel.root_dir%/../vendor/components/jqueryui/themes/redmond/jquery-ui.css
            filters: cssrewrite

在assetic:转储之后我有

/web/js
/web/css

cssrewrite将images/image.png重写为/images/image.png。我想没关系,假设有一个/web/images目录。

现在的问题是:如何将图像从/vvendor/components/jqueryui/themes/redmond/images复制到/web/images?

或者还有其他最佳实践可以做到这一点吗?对不起,如果这是显而易见的事情,我是一个.NET的家伙,只是在尝试PHP。

我的答案可能不准确,因为我没有在供应商文件中尝试过,但这对我来说很有效:

app/console assets:install

它会将您的所有公共资源复制到您的web目录中。

用户1814739的回答帮助我理解了这一点,并可能为您提供更多信息。

也可以考虑来自Symfony博客的以下建议:

尽管开发人员通常在没有任何选项的情况下执行命令,但大多数时候最好使用--symlink选项来执行。这将使您的资产成为一个符号链接,而不是实际复制它们的文件。这意味着网络资产内容的任何更改都将在应用程序中立即生效。