Почему мой фронт-контроллер dev включен в URL-адреса Assetic? - PullRequest
0 голосов
/ 08 сентября 2011

Я использую Assetic для включения файлов Javascript, но при использовании в среде dev, /app_dev.php добавляется в начало URL, поэтому окончательный URL выглядит как /app_dev.php/js/something.js. Это приводит к 404 при попытке загрузить JS. Когда я захожу на сайт из производственной среды, URL не включают /app_dev.php, и все работает нормально.

Я мог бы добавить условие, которое проверяет, является ли это среда разработки, и вызвать str_replace в URL, но я бы хотел решить корень этой проблемы, если это возможно.

Редактировать

@ gilden, я бы понял, что в dev они будут обрабатываться каждый раз, но 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

А вот как я использую его в своем шаблоне (app / Resources / views / 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.

1 Ответ

2 голосов
/ 08 сентября 2011

Я не использовал php-шаблоны в Symfony, поэтому боюсь, что у меня нет лучшего ответа. Используя некоторый пользовательский код, вы, вероятно, обойдете некоторую внутреннюю логику, которая обрабатывает запрос к контроллеру.

В качестве обходного пути вы можете попробовать удалить assetic: use_controller: true из /app/config_dev.yml.

...