Неперехваченная ошибка синтаксиса: неожиданное завершение ввода в зависимости от композитора

#php #cakephp #composer-php

#php #cakephp #композитор-php

Вопрос:

Я использую эту библиотеку: https://github.com/simon-begin/cakephp-datatables с композитором в проекте Cakephp 3. Когда я вызываю функцию drawTable , у меня возникает эта ошибка :

  Uncaught SyntaxError: Unexpected end of input
  

В загруженном файле (cakephp.dataTables.js ) в браузере я вижу, что в начале файла добавляется новая пустая строка, а последний символ удаляется.

У меня нет этой ошибки, если :

  • Я добавил новую пустую строку в конец файла JavaScript (на vendor/simon-begin/cakephp-datatables/cakephp.dataTables.js , Это только для тестирования кошелька)
  • Я скопировал файл js в другую папку и включил его следующим образом :

     <?= $this->Html->script(
        [
          'datatables/jquery.dataTables.min',
          'datatables/dataTables.bootstrap.min',
          'newfolder/cakephp.dataTables',
        ],
        ['block' => 'scriptBottom']
      );
    ?>
      

    вместо :

     <?= $this->Html->script(
        [
          'datatables/jquery.dataTables.min',
          'datatables/dataTables.bootstrap.min',
          'DataTables.cakephp.dataTables',
        ],
        ['block' => 'scriptBottom']
      );
    ?>
      

Вы можете увидеть эту ошибку на: https://maisonlogiciellibre.org/organizations

Итак, я хочу знать, что вызывает эту ошибку, и как ее правильно исправить.

Комментарии:

1. Вероятно, у вас есть пробел где-то в начале одного из задействованных .php файлов.

2. @ndm Большое вам спасибо, это была пустая строка в начале bootstrap.php . Но почему это происходит? Можете ли вы добавить свой комментарий в качестве ответа?

Ответ №1:

Вероятно, у вас есть пробел где-то в начале одного из задействованных .php файлов.

В отличие от обычных ресурсов приложения, которые обрабатываются непосредственно сервером, даже не обращаясь к PHP, ресурсы плагина по умолчанию обслуживаются через CakePHP, следовательно, такие ошибки будут влиять на вывод, поскольку Content-Length заголовок устанавливается на основе размера файла ресурсов, в результате чего дополнительные байты для пробелов усекаются изконец тела ответа.