Активы Symfony2 javascript Файлы имеют разные имена в разметке и на диске

У меня есть 2 среды... локальная среда разработки, на которой работает MAMP, и сервер LAMP, совместно используемый моей командой разработчиков для тестирования. Обе среды используют среду dev symfony (app_dev.php), и мы отключили assets_controller. В наших локальных настройках мы постоянно можем вносить изменения, запускать cache:clear и assets:dump, и все работает как надо. В нашей общей среде (которую мы развертываем для использования magellanes) мы получаем этот странный сценарий, когда файлы javascript в нашем пакете public/Resources/js записываются в web/js с именами файлов, отличными от тех, которые указаны в сгенерированном HTML, где они встроены.

Так, например, в шаблоне twig есть это:

{% javascripts '@MyGreatBundle/Resources/public/js/Default/*' %}
        <script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}

Что пишется в html:

<script type="text/javascript" src="/js/60d13ef_part_1_myscript_7.js"></script>

но то, что сбрасывается на диск в web/js:

60d13ef_part_1_myscript_6.js

Шаги развертывания (кратко) выглядят следующим образом:

  • Развертывание через Git Rebase
  • Установить глобальные параметры для Symfony
  • Установка вендоров через Composer
  • Кэш Очистить
  • Ассет Дамп
  • Прогрев кэша
  • Релиз (управление символическими ссылками)
  • Дамп кэша APC

Так что, черт возьми, я делаю неправильно? Даже когда я захожу после развертывания и вручную очищаю кеш / запускаю assets:dump, проблема сохраняется. Время от времени мы будем развертывать, и это просто работает, но в основном нет. Кроме того, он некоторое время работал надежно, а затем перестал. У меня нет идей, где искать, чтобы отследить проблему.


person Marty Mulligan    schedule 12.11.2014    source источник


Ответы (1)


Это похоже на ошибку. Один из моих JS-файлов начинался с заглавной буквы, и файлы сортировались по-разному при записи в HTML и при записи на диск. Я только что подал следующий отчет об ошибке. Надеюсь, это поможет кому-то:

Окружающая обстановка:

  • Выпуск CentOS 6.5 (финальный)
  • Симфони 2.5
  • PHP 5.3.3

При ссылке на весь каталог активов, например. Ресурсы/общедоступные/js/по умолчанию:

Ascript.js
bscript.js
cscript.js

вот так:

{% javascripts '@MyGreatBundle/Resources/public/js/Default/*' %}
        <script type="text/javascript" src="{{ asset_url }}"></script>
{% endjavascripts %}

Что пишется в html:

<script type="text/javascript" src="/js/60d13ef_part_1_Ascript_1.js"></script>
<script type="text/javascript" src="/js/60d13ef_part_1_byscript_2.js"></script>
<script type="text/javascript" src="/js/60d13ef_part_1_cscript_3.js"></script>

Но то, что записывается на диск в web/js:

60d13ef_part_1_bscript_1.js
60d13ef_part_1_cscript_2.js
60d13ef_part_1_Ascript_3.js

Итак, все javascripts 404. Переименование Ascript.js в ascript.js решает проблему.

person Marty Mulligan    schedule 13.11.2014