2017-05-26 82 views
1

我正在嘗試使用assetic在Symfony項目中設置CSS和JS縮小。我不能使用java或node.js或類似的東西,所以我按照userlond在Symfony2 minify without java or node的指示來獲取資源中使用minify的過濾器來爲我做。如何從資產中使用Symfony中的CSS和JS縮小

我遵循的指示,並通過安裝作曲家縮小,但我不斷收到以下時,我做了一個assetic轉儲:

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項目中有什麼改變,造成了不兼容或什麼?

我使用樹枝模板的代碼是:

{% 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'線,這一切工作正常(而且是不精縮)。

回答

2

你基於此的答案已經過時,自那時起資產發生了變化。 所以,除非你是專門使用的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意味着這隻會在prod環境中被縮小。

查看documentation for a non javascript minifying solution

+0

似乎很好,謝謝。 – MicWit

相關問題