2012-03-29 77 views
32

我需要关于如何在Symfony 2中处理资产的提示。例如,我们是否必须始终执行资产:每次添加图像时都要更新资源?我知道Assetic负责关于css和javascript文件的管理,但图像怎么样? Symfony 2前端开发的最佳做法是什么?你们如何在你的应用中设置你的css,图像和js文件,以便开发,部署和更改?Symfony 2 - 使用资产

+0

是'资产:update'一个真正的命令?我没有在其他地方发现它,并且无法在Symfony/Assetic代码库中找到它。如果它确实存在,我有兴趣了解更多。 – Sam 2014-01-16 12:01:31

+0

相关:http://stackoverflow.com/questions/12123069/how-to-properly-change-what-c​​omposer-or-symfony2-does-after-running-composer-up – Kzqai 2015-05-19 16:08:48

回答

74

关于图像,如果您添加到您的公共文件夹,我认为没有必要进行assets:update

但是,如果一个包的资源文件夹中添加图像,你可能要取决于你的操作系统和你调用时使用的选项assets:install

如果你使用的是支持符号链接的操作系统(linux,OS X,我猜所有的操作系​​统除了Windows),你可以安装资产调用(我不确切地记得通话,这里重要的是符号链接选项):

php app/console assets:install web --symlink 

这样,您将拥有一个符号链接,而不必拥有每个资源包的副本,所以不需要更新。如果你的操作系统不支持符号链接,我认为你必须不断更新或重新安装资产(事实上,我总是使用assets:install,我不知道有更新选项:P)。

关于设置,我通常会将所有css,js,图像和任何公共资源放在一个包中,如果它仅在包中使用,并将其放置到公用文件夹(如果它被多个包使用)计划在其他捆绑中使用它。

+5

'符号链接'也适用于Windows – DoubleYo 2014-03-10 20:39:40

+1

此外,如果您使用Composer来更新供应商软件包,请不要忘记在composer.json文件中设置''extra extra':{“symfony-assets-install”:“symlink”}([请参阅文档](http://symfony.com/doc/current/book/installation.html#updating-vendors))。 – Geert 2014-11-11 09:42:29

+1

当您在管理员模式下运行cmd(或git bash)时,'symlink'也可以在Windows上工作。 :)因为Assetic可以在Windows上支持http://php.net/manual/en/function.symlink.php。 – Athlan 2015-07-31 10:33:21

2

由于Symfony的2.7的,这将在web目录下生成相对符号链接:

php app/console assets:install web --symlink --relative 

在composer.json附加:

"extra": { 
    "symfony-assets-install": "relative" 
} 

这也将在composer update产生相对符号链接。

+0

由于composer.json是提交的,因此在生产环境中进行安装时使用,我不确定是否需要直接在composer.json中找到它。 – Kzqai 2015-05-19 16:08:18

+0

请参阅:http://stackoverflow.com/a/15797829/69993 – Kzqai 2015-05-19 16:08:35