Я полагаю, что настроил это правильно — вот мой config.yml:
assetic:
debug: "%kernel.debug%"use_controller: false
node: "/usr/local/bin/node"bundles: [ ]
#java: /usr/bin/java
filters:
uglifyjs2:
# the path to the uglifyjs executable
bin: "%kernel.root_dir%/Resources/node_modules/.bin/uglifyjs"cssrewrite: ~
Я храню uglifyjs локально в проекте, чтобы облегчить его распространение.
Я делаю следующее, чтобы сгенерировать все файлы JS, используя uglifyjs:
{% javascripts
'vendor/bower_components/jquery/dist/jquery.min.js'
'vendor/bower_components/bootstrap-sass/assets/javascripts/bootstrap.min.js'
'vendor/bower_components/angular-route/angular-route.min.js'
'vendor/bower_components/underscore/underscore-min.js'
'vendor/bower_components/angular-cookies/angular-cookies.min.js'
'js/test1.js'
'js/test2.js'
filter='?uglifyjs2' %}
<script src="{{ asset_url }}"></script>
{% endjavascripts %}
Если я загружаю страницу в режиме разработки (/app_dev.php), она работает нормально и просто загружает файлы по отдельности, но минимизируется с помощью uglifyjs; но если я попытаюсь загрузить его в производство, он объединит все эти файлы js в один файл js (т. е. a07da66.js). Проблема, с которой я сталкиваюсь, заключается в том, что при попытке загрузить этот файл возникает ошибка 404 (a07da66.js). Он пытается получить к нему доступ в js/a07da66.js
— кажется, чтобы создать их под JS / по умолчанию.
Почему он отлично работает в app_dev.php, когда создает новые файлы в js / (js / a07da66_jquery.min_1.js), но не в работе?
Ты должен бежать app/console --env=prod assetic:dump
генерировать активы для рабочей среды.
Практическое правило:
app/console assetic:watch --force
работает в фоновом режиме (по крайней мере, при работе с файлами JS / CSS). Будет регенерировать DEV активы всякий раз, когда файл изменяется.app/console --env=prod assetic:dump
один раз, чтобы иметь объединенные активы для тычок генерироваться.Идея режима prod заключается в том, что вы генерируете какую-то сборку или снимок вашей текущей разработки. Поэтому вы бы использовали app/console --env=prod assetic:dump
только при создании сборки.
Конечно, вы можете переключить свой DEV среда для тычок для краткого теста, но затем вы должны выполнить процедуру сборки (которая включает генерацию тычок активы).
В Symfony 3+ нужно бежать bin/console assetic:dump --env=prod
генерировать файлы для среды prod.
Если вы внесли изменения в активы, вы должны запустить bin/console assetic:watch
каждый раз, чтобы восстановить файлы.