Почему мой фронт -контроллер Dev включен в Assication URL -адреса?
Вопрос
Я использую Assitice, чтобы включить файлы JavaScript, но при использовании в среде Dev, /app_dev.php
добавляется в начало URL, поэтому последний URL выглядит как /app_dev.php/js/something.js
. Анкет Это приводит к 404 при попытке загрузить JS. Когда я получаю доступ к сайту из производственной среды, URL не включают /app_dev.php
И все работает нормально.
Я мог бы добавить условное, которое проверяет, если это среда Dev, и вызов str_replace
На URL -адресах, но я хотел бы решить корень этой проблемы, если это возможно.
Редактировать
@gilden, я бы понял, что в разработке они будут обрабатываться каждый раз, но URL -адреса просто приводят к 404 -м годам.
Вот моя достойная конфигурация:
assetic:
debug: %kernel.debug%
use_controller: false
filters:
cssrewrite: ~
# closure:
# jar: %kernel.root_dir%/java/compiler.jar
# yui_css:
# jar: %kernel.root_dir%/java/yuicompressor-2.4.2.jar
И вот как я использую его в своем шаблоне (приложение/ресурсы/виды/base.html.php)
foreach ($view['assetic']->javascripts(
array('@AssetsBundle/Resources/public/js/*'), array(), array('output' => 'js/combined.js')) as $url) {
echo 'url: ' . $url . '<br />';
}
Затем я включаю $ url, используя пользовательского помощника, которого я написал, но в этот момент он уже содержит APP_DEV.PHP.
Решение
Я не использовал шаблон PHP в Symfony, поэтому боюсь, что у меня нет лучшего ответа. Используя какой -то пользовательский код, вы, вероятно, обходите некоторую внутреннюю логику, которая обрабатывает запрос с контроллером.
В качестве обходного пути вы могли бы попробовать удалить assetic: use_controller: true
из /app/config_dev.yml
.