How to make Symfony 2 asset compilation to product different filenames? How to make Symfony 2 asset compilation to product different filenames? symfony symfony

How to make Symfony 2 asset compilation to product different filenames?


You have two options here: Either leave out the output file name (it will then be an autogenerated hash that changes) or use asset versions, as described in the Symfony docs: http://symfony.com/doc/current/reference/configuration/framework.html#ref-framework-assets-version


I have been doing a lot of experimenting with Assetic for a project, and I stumbled across a way to do exactly what you're asking. If the "output" string contains "*", a derministically generated arbitrary string is substituted for it.

For example, I have the following in a template (PHP, we aren't using twig):

<?php foreach($view['assetic']->javascripts(array('@MyBundle/Resources/public/js/page.js'), array(), array('output' => 'js/compiled/page_*.js')) as $url): ?>  <script type="text/javascript" src="<?php echo $view->escape($url) ?>"></script><?php endforeach; ?><?php foreach($view['assetic']->stylesheets(array('@MyBundle/Resources/public/css/page.css'), array(), array('output' => 'css/compiled/page_*.css')) as $url): ?>  <link rel="stylesheet" href="<?php echo $view->escape($url) ?>" /><?php endforeach; ?>

When I run app/console assetic:dump, it generates /web/css/compiled/page_8e8fcb3.css and /web/js/compiled/page_241b4e5.js.


Better approach is https://github.com/symfony/AsseticBundle/pull/119#issuecomment-28877145

You'll get :

app/console assetic:dump --env=prod --no-debugDumping all prod assets.Debug mode is off.[file+] /web/assets/static-fe1927d.css[file+] /web/assets/static-6e92057.js