[英]How to use CSS and JS minification in Symfony from assetic
我正在嘗試使用Assetic在Symfony項目中設置CSS和JS最小化。 我不能使用java或node.js或類似的東西,所以我遵循Symfony2 minify上的指示, 沒有 userlond使用java或node來獲取使用minify為我做的資產過濾器。
我已按照說明進行操作,並已通過composer安裝了minify,但是在進行資產轉儲時,我不斷收到以下內容:
php.CRITICAL: Fatal Error: Class 'JSMinPlus' not found {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalErrorException(code: 0): Error: Class 'JSMinPlus' not found at /var/www/html/new_test_1/vendor/kriswallsmith/assetic/src/Assetic/Filter/JSMinPlusFilter.php:32)"}
[Symfony\Component\Debug\Exception\ClassNotFoundException]
Attempted to load class "JSMinPlus" from the global namespace.
Did you forget a "use" statement?
如果我不嘗試使用jsminplus過濾器,但仍在使用minifycsscompressor過濾器,那么一切似乎都可以正常工作(並且我的CSS縮小了)。
在minify項目中是否發生了某些更改,這些更改造成了不兼容性?
我在TWIG模板中使用的代碼是:
{% javascripts
'@TemplateBundle/Resources/public/media/site-assets/javascript/vendor/jquery-1.12.1.min.js'
'@TemplateBundle/Resources/public/media/site-assets/javascript/vendor/*.js'
'@TemplateBundle/Resources/public/media/site-assets/javascript/*.js'
filter='jsminplus'
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
如果我刪除了filter='jsminplus'
行,那么一切都很好(只是沒有縮小)。
您基於此的答案已過時,此后資產發生了變化。 因此,除非您專門使用舊版本的Symfony,否則您將需要
# app/config/config.yml
assetic:
filters:
jsqueeze: ~
# ...
然后
{% javascripts filter="?jsqueeze" output="js/app.js"
"@TemplateBundle/Resources/public/media/site-assets/javascript/*.js"
"@TemplateBundle/Resources/public/media/site-assets/javascript/vendor/*.js"
"@TemplateBundle/Resources/public/media/site-assets/javascript/*.js"
%}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
當心了嗎? 在?jsqueeze
這意味着只會在產品環境中?jsqueeze
。
請參閱說明文件以獲取非javascript壓縮解決方案 。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.