我在symfony中处理资产时仍有一些问题。 best practices说,我应该将资产存储在web/
中。
但是我不喜欢在那里存储我的原始sass文件,因为它是一个公共文件夹,我认为只应该存储编译或静态文件。
这就是为什么我将它们(js和sass)存储在app/Resources
中。我的assetic.read_from
是app/Resources
。但是有一些捆绑包,由assets:install
符号链接到web/bundles/
。
现在,当我想在我的twig文件中包含这个bundle-assets时,我必须在样式表块中通过../../web/bundles/..
去那里。这看起来不是很干净,所以我做了一个符号链接app/Resources/bundles->web/bundles/
,这是有效的。
但我仍然认为它太过小巧,我想知道是否有一种更清洁的方式可以更好地在一个地方收集我的资产。
答案 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,那么它应该可以帮助您将源文件放在捆绑包中。