4 FOSJSRouting callback = fos.Router.setData & Route не найден только в производстве - PullRequest
0 голосов
/ 11 июня 2018

Я разрабатываю страницу в Symfony 4, для которой требуется пакет FOSJSrouting.В моей среде DEV - с помощью Docker - я все заработал, используя следующие шаги.

Однако в моей среде Prod я получаю ошибки:

- http://url/js/routing?callback=fos.Router.setData 500 (Internal Server Error)
- router.min.js:1 Uncaught Error: The route "get_coinTicker_from_platform" does not exist.

Мои шаги, чтобы получить егоработа в DEV:

  • $ composer require friendsofsymfony/jsrouting-bundle
    
  • Добавление следующего к routes.yaml:

    fos_js_routing:
    resource: "@FOSJsRoutingBundle/Resources/config/routing/routing.xml"
    
  • Добавлениепосле моего base.html.twig

    <script src="{{ asset('bundles/fosjsrouting/js/router.min.js') }}"></script>
    <script src="{{ path('fos_js_routing_js', { callback: 'fos.Router.setData' }) }}"></script>
    

Этого было достаточно, чтобы мои открытые маршруты работали:

/**
 * @Route("/ticker/{coin}/{plat}", name="get_coinTicker_from_platform", options={"expose"=true})
 */

Тогда в моем JavaScript я сделал:

$.ajax({
method: 'POST',
url: Routing.generate('get_coinTicker_from_platform', {coin: coin.val(), plat: exch.val()})
}).done(function(data) {
$('.loader').hide();
}
});

Я установил комплект маршрутизации с помощью composer на своем сервере Linux и даже попытался выполнить шаги, включенные в документы, для публикации ресурсов, а также маршрутов дампа, например:

bin/console fos:js-routing:dump --format=json --target=public/js/fos_js_routes.json

Iпроверил логи Symfony и Apache.Там ничего не намекает на эту проблему.Все остальное работает нормально, только FOSrouting вызывает проблемы.Кроме того, я попытался:

npm install fos-routing --save

Это фактически временно решило проблему, но на следующий день, после того, как я сделал другую rsync из моего локального хранилища, оно снова было прервано.

1 Ответ

0 голосов
/ 20 июня 2019

У меня была такая же проблема, и она была решена путем предоставления права rwxrwxrwx на папку var/cache/prod.

...