未捕获的SyntaxError:编写器依赖项上输入的意外结束


Uncaught SyntaxError: Unexpected end of input on a Composer dependency

我在Cakephp 3项目中使用这个库:https://github.com/simon-begin/cakephp-datatables与composer。当我调用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

所以我想知道是什么导致这个错误,以及如何正确地修复它

您可能在涉及的.php文件开头的某个地方有空白。

不像常规的应用程序资产,它是由服务器直接处理而不需要点击PHP,插件资产默认情况下是通过CakePHP提供的,因此这样的错误会影响输出,因为Content-Length头是根据资产文件大小设置的,导致额外的字节(s)的空白从响应体的末尾被截断。