我无法理解Assetic捆绑工作方式背后的原因,不幸的是官方文档并不太冗长。
我只是没有看到处理静态路径和网址的方式有任何好处。说,
{{ asset("bundles/mybundle/css/main.css") }}
被翻译成“/bundles/mybundle/css/main.css”。什么,只是在它前面加上'/'?但我可以手动完成。我期望在Django中至少有类似STATIC_DIR的东西,它指定所有静态文件所在的位置并用作静态根目录。
和
{% stylesheets '@MyBundle/Resources/public/css/main.css' %}
<link rel="stylesheet" href="{{ asset_url }}" type="text/css" media="all" />
{% endstylesheets %}
变得类似
<link rel="stylesheet" href="/app_dev.php/css/618ab99_main_1.css" type="text/css" media="all" />
但它不会给你的布局增加任何灵活性 - 当静态文件名发生变化时你仍然需要编辑你的布局文件。而且您仍然需要手动编写HTML“链接”标记。
考虑到你可以使用Sf2控制台在web / dir中创建包的公共文件夹的符号链接这一事实,我发现Assetic的工作方式有点模糊。我确信我会错过一些东西,所以我希望有人可以为我解决这个问题。感谢。
答案 0 :(得分:4)
使用一个脚本不会产生太大影响。资产管理还有其他好处:
但是使用Assetic,您可以根据需要操纵这些资产(或者 在提供它们之前从任何地方加载它们。这意味着你可以:
Minify and combine all of your CSS and JS files Run all (or just some) of your CSS or JS files through some sort of compiler, such as LESS, SASS or CoffeeScript Run image optimizations on your images
还有更多,你可以将它们组合起来用于更少的请求,过滤它,控制网址,缓存等。
我喜欢:p