在Symfony3中组织资产

时间:2016-08-03 15:29:42

标签: symfony assetic

我在symfony中处理资产时仍有一些问题。 best practices说,我应该将资产存储在web/中。 但是我不喜欢在那里存储我的原始sass文件,因为它是一个公共文件夹,我认为只应该存储编译或静态文件。

这就是为什么我将它们(js和sass)存储在app/Resources中。我的assetic.read_fromapp/Resources。但是有一些捆绑包,由assets:install符号链接到web/bundles/

现在,当我想在我的twig文件中包含这个bundle-assets时,我必须在样式表块中通过../../web/bundles/..去那里。这看起来不是很干净,所以我做了一个符号链接app/Resources/bundles->web/bundles/,这是有效的。

但我仍然认为它太过小巧,我想知道是否有一种更清洁的方式可以更好地在一个地方收集我的资产。

2 个答案:

答案 0 :(得分:7)

不要使用AsseticBundle,甚至在默认的symfony-standard 2.8中删除它。使用php管理前端资产对于真正不想使用“正确工具”的人来说是一种解决方法

我个人将我的源文件保存在/assets/中,并使用Grunt JS将其编译为/web/assets/,后来从assets.somedomain.com通过CDN

提供

2年前,我写过关于使用symfony管理资产的帖子,它仍然有效并且是最新的。你可能想看一下。

http://konradpodgorski.com/blog/2014/06/23/better-way-to-work-with-assets-in-symfony-2/

我应该通过我从那时学到的东西来扩展帖子,但总是没有足够的时间:)

答案 1 :(得分:0)

我不明白为什么你不能使用web/文件夹作为资产。

我经常使用less和其他文件格式,后续处理和缩小。 您的问题的解决方案对我来说似乎很简单:在web/文件夹中使用两个文件夹。

第一个文件夹是您的source/文件夹。您可以在其中放置所有sass个文件。您将.htaccess文件添加到同一文件夹,并拒绝所有访问权限(您可以从.htaccess文件夹中的src/文件进行复制。

然后是第二个文件夹,我们称之为assets,它将保存所有已编译和缩小的资产。

这应该可以解决问题......;)

您可能也对this topic感兴趣。隐藏source/文件夹的存在可能会有所帮助。 ;)

如果您真的不希望将源文件放在web/文件夹中,然后loot at this,那么它应该可以帮助您将源文件放在捆绑包中。