【问题标题】:php artisan optimize returns (Invalid filename provided.)php artisan optimize 返回(提供的文件名无效。)
【发布时间】:2016-01-01 04:58:50
【问题描述】:

我试图使用 Forge+DigitalOcean 发布我的新 laravel 项目,但由于 php artisan optimize 命令返回 Invalid filename provided. 错误,我收到错误消息(我们无法在您的服务器上安装项目)。

所以我修改了我的 .env 文件并将 APP_DEBUG 设置为 false 并尝试在本地运行该命令。我收到以下错误:

php artisan optimize -v

生成优化的类加载器编译通用类 [RuntimeException] 提供的文件名无效。
异常跟踪: () 在 /home/bubut/Code/TalalAttendance/vendor/classpreloader/classpreloader/src/ClassPreloader.php:105 ClassPreloader\ClassPreloader->getCode() 在 /home/bubut/Code/TalalAttendance/vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php:89 Illuminate\Foundation\Console\OptimizeCommand->compileClasses() at /home/bubut/Code/TalalAttendance/vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php:70 Illuminate\Foundation\Console\OptimizeCommand->fire() at n/a:n/a call_user_func_array() 在 /home/bubut/Code/TalalAttendance/bootstrap/cache/compiled.php:1138 照亮\容器\容器->调用()在 /home/bubut/Code/TalalAttendance/vendor/laravel/framework/src/Illuminate/Console/Command.php:150 Illuminate\Console\Command->execute() at /home/bubut/Code/TalalAttendance/vendor/symfony/console/Command/Command.php:258 Symfony\Component\Console\Command\Command->run() at /home/bubut/Code/TalalAttendance/vendor/laravel/framework/src/Illuminate/Console/Command.php:136 Illuminate\Console\Command->run() at /home/bubut/Code/TalalAttendance/vendor/symfony/console/Application.php:827 Symfony\Component\Console\Application->doRunCommand() 在 /home/bubut/Code/TalalAttendance/vendor/symfony/console/Application.php:191 Symfony\Component\Console\Application->doRun() 在 /home/bubut/Code/TalalAttendance/vendor/symfony/console/Application.php:122 Symfony\Component\Console\Application->run() 在 /home/bubut/Code/TalalAttendance/vendor/laravel/framework/src/Illuminate/Foundation/Console/Kernel.php:100 Illuminate\Foundation\Console\Kernel->handle() at /home/bubut/Code/TalalAttendance/artisan:36

【问题讨论】:

    标签: laravel-5 laravel-artisan


    【解决方案1】:

    同样的问题,在Illuminate\Foundation\Console\OptimizeCommand 中调试后,我发现供应商文件夹中缺少一些 symfony 组件,即使出于某种原因使用了 composer install/update 命令。

    删除供应商文件夹下的内容,然后执行composer update 以查看丢失的组件是否回来。或者 git clone 整个项目和作曲家更新。请注意,composer install 将检查 composer.lock,如果它存在并且那里缺少组件,则会触发问题。

    【讨论】:

    • 你还记得缺少哪些 symfony 组件吗?我遇到了类似的问题,我有点害怕删除供应商文件夹中的内容......
    【解决方案2】:

    注意:更多信息

    如果您的文件位于 app 文件夹内的文件夹中,则应按以下方式列出它们。

    'files' => [
    'app/your_folder_name/file_a.php',
    'app/your_folder_name/file_b.php',
    'app/your_folder_name/file_c.php',
    ]
    

    希望这可以帮助任何人编译他们的自定义函数。

    【讨论】:

      【解决方案3】:

      Laravel 允许您指定要编译的附加文件——通常是在应用程序中的每个请求中使用的文件。

      文件列表在files 数组中的/config/compile.php 中指定。如果您在那里指定了一个文件但它不存在(或位置错误),那么 artisan 将在尝试编译它时抛出该错误。

      同样的事情发生在我身上,从列表中删除不存在的文件解决了我的问题。

      【讨论】:

        猜你喜欢
        • 2020-08-03
        • 2015-05-02
        • 2023-04-10
        • 1970-01-01
        • 2017-08-17
        • 1970-01-01
        • 2014-05-19
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多