我对Symfony有点新鲜,而且我不知道如何使用静态文件管理。我读过有关Assets组件和Assetics包的内容。
我知道Assets只包含文件,而Assetics更聪明,因为它可以组合文件和压缩图像。但我已经使用指南针来缩小和组合css文件,因此不需要Assetics。
版本控制使静态文件的url通过浏览器缓存更改为由两者完成。
资产已从2.8或更高版本中删除,这是否意味着它不再是最佳做法?
我需要在三个地方生成网址:
在我的情况下,Wat是最好用的,有什么建议吗?
答案 0 :(得分:1)
Assetic可以被视为一种轻松应用过滤器和编译资产的方法。资产组件基本上用于管理URL生成。正如你所说,两者都很好地通过扩展和控制器通过服务集成在Twig中。
我们的应用程序也使用指南针,但Assetic确保编译在恰当的时刻发生,而不需要命令行compass watch
。
认为您的大多数问题都已得到解答:
http://symfony.com/doc/current/cookbook/assetic/asset_management.html
和
http://symfony.com/doc/current/components/asset/introduction.html
答案 1 :(得分:0)
我一直在使用RjFrontendBundle来运行前端CSS / JS构建,并且还将其他静态内容从Bower / NPM /本地源复制到位。它为Assets组件提供了VersionStrategyInterface
,该组件创建并在生产中使用唯一的文件名(通过GulpJS rev-all包重命名带有嵌入式哈希的文件)。在dev中,它使用普通文件名。
在CSS文件中,您仍然可以通过url()
函数引用CSS / JS,管道将在dev和live中适当地重命名它们。
GulpJS构建工具用于缩小和准备普通文件。它附带一个setup
控制台命令来构建初始gulpfile.js
,还可以观察和重建文件,更新浏览器时更新浏览器,这有助于前端开发工作流程。
答案 2 :(得分:0)
趋势是使用独立的前端工具,例如gulp / grunt / sass而不是资产。原因(可能)如下:
至于生成URL:资产只是文件系统中的文件。编写函数或树枝扩展名以生成这些文件的URL。