Symfony Assetic是否允许您从不发布资源?

Symfony Assetic是否允许您从不发布资源?,symfony,assets,Symfony,Assets,Symfony2的特点是Assetic,它似乎是一种资产预处理器。它能够从任何路径加载资产 现在,Symfony2要求您“发布”捆绑包中的资产,这在我看来很难实现 通过让您的控制器和模板通过Assetic准备所有内容,完全避免发布资产是可能的还是一个好主意?我认为使用Assetic准备资源是很好的(可能会进行一些缩小或类似操作)。但据我所知,Assetic还要求您“发布”(例如“转储”)您的资产。这是使用“assetic:dump”命令完成的 您还可以在调试模式下运行Assetic,让它检查资产

Symfony2的特点是Assetic,它似乎是一种资产预处理器。它能够从任何路径加载资产

现在,Symfony2要求您“发布”捆绑包中的资产,这在我看来很难实现


通过让您的控制器和模板通过Assetic准备所有内容,完全避免发布资产是可能的还是一个好主意?

我认为使用Assetic准备资源是很好的(可能会进行一些缩小或类似操作)。但据我所知,Assetic还要求您“发布”(例如“转储”)您的资产。这是使用“assetic:dump”命令完成的

您还可以在调试模式下运行Assetic,让它检查资产中的更改(--watch),然后转储它们

对我来说,资产“发布”并没有那么多工作,因为我在运行“资产:安装”命令时将--symlink标志添加到该命令中。这将为每个web/bundles/bundlename文件夹创建符号链接,引用bundles/MyCompany/MyBundle/Resources/public文件夹

我必须重新运行发布命令的唯一情况是在添加新捆绑包时(或在我自己的捆绑包中添加公用文件夹时)

我希望这能回答你的问题。如果没有,请添加一些额外的评论,说明您觉得什么是笨拙的,以及您希望Symfony2的行为:)

更新2012-01-23 自从你上次发表评论以来,我一直在与Symfony2进行更多的合作。昨天我有一个想法——也许你可以注册你自己的Twig函数来处理资产,然后使用Synfony2的FileLocator之类的东西来查找文件(然后将其传递给Assetic)?
也许不是处理资产的最佳方式,但解决方案更符合您的要求,至少:-)

我希望assetic遵循与symfony配置文件相同的层次结构类型,即如果我从特定捆绑包中调用
asset()
帮助程序,首先在该捆绑包的
public
dir中搜索资产。如果你在那里没有找到它,那么在根
web
dir中查找它。在我的答案中添加了一个部分。如果您已经解决了这个问题,请随时分享您是如何做到的:-)