我正在使用Symfony2编写一个应用程序,我遇到一种情况,我想将所有CSS和Javascript资源组合在一起,并将它们包含在我的Twig模板中,这样,最终,只有一个文件通过HTTP请求返回。
{% block stylesheets %}
{% stylesheets output='web/css/combined.css' combine=true
'@stylesheet1.css'
'@stylesheet2.css'
'@stylesheet3.css'
'@stylesheet4.css'
%}
{% endstylesheets %}
// PSEUDO
include 'combined.css'
// END PSEUDO
{% endblock %}
因此,我希望直接访问输出,而不是使用 Assetic 仅合并文件然后引用它们。所有 CSS 都将位于单个 <style>
标记中,所有 JS 都将位于单个 <script>
标记中。
有没有办法在不扩展现有库的情况下实现这一点?
为什么要直接访问组合资产?
事实上,这就是assetic所做的:在开发环境中,每个样式表都有一个<style>
标签,而在prod中,它们都组合在一个.css文件中,因此使用单个<style>
。当然,JavaScript文件也会发生同样的情况。
要使后者正常工作(在生产环境中),您需要手动转储它们:
php app/console assetic:dump --env=prod
看看 dev/prod 中的源 HTML weh。我从未使用过combine
选项,也没有关于它的官方Symfony 2文档。