php artisan optimize返回(提供的文件名无效。)

时间:2015-10-04 12:12:13

标签: laravel-5.1

我试图使用Forge + DigitalOcean发布我的新laravel项目,但由于' php artisan optimize'我收到了错误消息(我们无法在您的服务器上安装项目)。命令返回'提供的文件名无效。'错误。

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

php artisan optimize -v

生成优化的类加载器 编译公共类

[RuntimeException的]
  提供的文件名无效。

异常追踪:  ()athome/bubut/Code/TalalAttendance/vendor/classpreloader/classpreloader/src/ClassPreloader.php:105  ClassPreloader \ ClassPreloader-> getCode()athome/bubut/Code/TalalAttendance/vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php:89  在/home/bubut/Code/TalalAttendance/vendor/laravel/framework/src/Illuminate/Foundation/Console/OptimizeCommand.php:70照亮\ Foundation \ Console \ OptimizeCommand-> compileClasses()  在n / a:n / a处照亮\ Foundation \ Console \ OptimizeCommand-> fire()  call_user_func_array()athome/bubut/Code/TalalAttendance/bootstrap/cache/compiled.php:1138  在/home/bubut/Code/TalalAttendance/vendor/laravel/framework/src/Illuminate/Console/Command.php:150照亮\容器\容器 - > call()  在/home/bubut/Code/TalalAttendance/vendor/symfony/console/Command/Command.php:258照亮\控制台\命令 - >执行()  Symfony \ Component \ Console \ Command \ Command->运行()/home/bubut/Code/TalalAttendance/vendor/laravel/framework/src/Illuminate/Console/Command.php:136  在/home/bubut/Code/TalalAttendance/vendor/symfony/console/Application.php:827照亮\ Console \ Command-> run()  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()athome/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

3 个答案:

答案 0 :(得分:2)

Laravel允许您指定要编译的其他文件 - 通常是应用程序中每个请求使用的文件。

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

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

答案 1 :(得分:1)

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

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

答案 2 :(得分:0)

注意:有关其他信息

如果您的文件位于app文件夹中的文件夹中,则应按列出这些文件。

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

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