Intereting Posts
Ошибка подключения MySQLI PHP max_execution_time игнорируется (нет безопасного режима, нет общего хоста, только localhost / windows7 / php 5.3.1 и время ожидания Apache равно 300) Альтернативный способ скрыть ссылку для скачивания Пользовательский селектор выпадающего меню, отображающий или скрывающий другие настраиваемые поля Checkout Передача значения JavaScript в переменную PHP (с ограничением) PHP версии 5.2.14 / Ошибка анализа: синтаксическая ошибка, неожиданный T_FUNCTION, ожидающий ')' Преобразование существующих PHP / MYSQL / веб-сайтов в родные приложения IOS / Android laravel цикл по коллекции JWT API с Laravel, не может читать заголовок обновления токена на клиенте Как создать глобальный файл конфигурации? Как добавить <tr> </ tr> после каждого четвертого члена цикла <td> </ td> Joomla php внутри sourcerer не отображается Включение файлов по относительной траектории Изображения как ссылки в базе данных MySQL? Как я могу использовать .htaccess, чтобы скрыть расширения URL-адресов ?php?

Как заставить Symfony2 загружать файлы CSS, JS напрямую, а не через PHP?

СТАРЫЙ ВОПРОС, ВИДЕТЬ НИЖЕ ОБНОВЛЕННОЙ ВЕРСИИ

Моя среда разработки не самая быстрая. Я беру примерно 500 мс на PHP-запрос. Это начинает проблемы с файлами ресурсов Symfony2, потому что каждый из файлов ресурсов запрашивается через внутренние контроллеры Symfony:

http://localhost/myproj/app_dev.php/js/bb8690a_part_4_myJavaScriptFile_2.js

Как видно, файлы загружаются через структуру Symfony, а не напрямую. Так как я начинаю загружать более 20 файлов, умножая их на 500 мс, загрузка страниц очень медленная. Я хочу загрузить файлы напрямую, но я не уверен, как это сделать.

Это часть config.yml :

 # Assetic Configuration assetic: debug: %kernel.debug% use_controller: false # java: /usr/bin/java filters: cssrewrite: ~ 

Я думал, что установка use_controller на false сделает это, но нет.

Есть ли способ напрямую обращаться с загрузкой этих ресурсов?

ОБНОВИТЬ:

Это URL, который он пытается использовать сейчас:

http://localhost/myproj/_controller/js/bb8690a_part_4_myJavaScriptFile_2.js

Я установил use_controller в false для обеих dev и общих конфигураций. Как мне избавиться от этой _controller части URL?

Изменить: если я assetic:dump кеш, запустите assetic:dump и у меня есть use_controller как false , а затем при перезагрузке я получаю Cannot load resource "." , Я не могу обойти эту проблему, если я временно не use_controller для загрузки одной страницы. После этого я отключу его и перезагрузите, и теперь он запрашивает с этого недопустимого URL-адреса, который содержит _controller .

Он также работает в prod, но не в dev. Странный.

Шаблонный код:

 {% stylesheets filter="cssrewrite" 'bundles/outotecofil/css/reset.css' 'bundles/outotecofil/css/*' output='css/dist/dist.css' %} <link rel="stylesheet" href="{{ asset_url }}" /> {% endstylesheets %} {% javascripts '@OutotecCommonBundle/Resources/public/js/jquery-1.6.2.min.js' '@OutotecCommonBundle/Resources/public/js/jquery-ui-1.8.16.custom.min.js' '@OutotecCommonBundle/Resources/public/js/chosen.jquery.min.js' '@OutotecCommonBundle/Resources/public/js/widget/*' '@OutotecOFILBundle/Resources/public/js/OFILDependencyManager.js' '@OutotecOFILBundle/Resources/public/js/widget/*' '@OutotecOFILBundle/Resources/public/js/plant-scope.js' output='js/dist/dist.js' %} <script src="{{ asset_url }}"></script> {% endjavascripts %} 

Чтобы быть предельно ясным: без app_dev.php (то есть в режиме prod), он работает . Только в dev это не делает и выбрасывает эту «Невозможно загрузить ресурс». «Ошибка, если я сначала не use_controller для одного запроса, после чего я могу отключить его и перезагрузить, хотя в URL-адресах будет содержаться _controller/ в их путях.

Попытайтесь удалить эту часть кода в routing_dev.yml, когда use_controller имеет значение false:

 _assetic: resource: . type: assetic 

Документация по Symfony всегда является первым местом, на котором можно начать работу: как использовать Assetic для управления активами

В среде prod ваши файлы JS и CSS представлены одним тегом каждый. Другими словами, вместо того, чтобы видеть каждый файл JavaScript, который вы включаете в свой источник, скорее всего, вы увидите следующее:

 <script src="/app_dev.php/js/abcd123.js"></script> 

Более того, этот файл фактически не существует и не динамически отображается Symfony (поскольку файлы активов находятся в среде dev). Это специально, позволяя Symfony генерировать эти файлы динамически в производственной среде, это слишком медленно.

Вместо этого каждый раз, когда вы используете свое приложение в среде prod (и, следовательно, каждый раз при развертывании), вы должны выполнить следующую задачу:

 php app/console assetic:dump --env=prod --no-debug 

Это будет физически генерировать и записывать каждый необходимый вам файл (например, /js/abcd123.js). Если вы обновляете какие-либо из ваших активов, вам нужно будет запустить это снова, чтобы восстановить файл.

Если вы используете assetic:dump , тогда вам нужно cache:clear -e dev

«… если вы запустите кеш: очистите свой производственный кеш, он разогревает кеш с режимом отладки. Если вы попытаетесь свалить активы впоследствии, могут произойти странные вещи».

Я нашел его здесь: http://sftuts.com/using-assetic-in-symfony2-for-css-compression (4. paragraph)

Из документации

Измените конфигурацию dev, чтобы избежать использования контроллера.

 # app/config/config_dev.yml assetic: use_controller: false 

Удалите маршрут в routing_dev.yml, чтобы избежать побочного эффекта

 # app/config/routing_dev.yml _assetic: resource: . type: assetic 

Автоматически выгружать файлы css / less при каждом изменении.

 php app/console assetic:dump --watch 

У меня та же проблема, рабочая конфигурация: комментарий из routing_dev.yml:

 _assetic: resource: . type: assetic 

установите для параметра use_controller значение false. После этого я могу использовать assetic: dump и видеть рабочую страницу.