我在生产服务器中有一个Laravel应用程序,在渲染视图时会产生异常。打印的日志文件堆栈跟踪异常发生的位置,但是具有散列的视图名称。
如何获取散列视图的原始路径和文件名?因为我只能从服务器中的错误日志进行调试。例如,使用这个堆栈跟踪,我想找到原始文件路径和名称698a6499f344ea0485830fd76f437b7ae1833431.php
ErrorException: Undefined property: stdClass::$balance_perdana in /var/app/current/storage/framework/views/698a6499f344ea0485830fd76f437b7ae1833431.php:44
Stack trace:
#0 /var/app/current/storage/framework/views/698a6499f344ea0485830fd76f437b7ae1833431.php(44): Illuminate\\Foundation\\Bootstrap\\HandleExceptions->handleError(8, 'Undefined prope...', '/var/app/curren...', 44, Array)
#1 /var/app/current/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php(42): include('/var/app/curren...')
有一个解决方案使用laravel debugbar(https://github.com/barryvdh/laravel-debugbar)来帮助查找相关视图,但我认为这不是一个好习惯,在生产环境中激活调试模式。
答案 0 :(得分:0)
Laravel存储编译的版本文件以加速系统执行。
编译完文件后如果不对其进行更改,则laravel direct会执行此编译版本,这就是laravel执行快速处理工作的方式。
因此,显示文件的原始名称是不可行的。
现在,对于解决方案,您可以将带有<!-- BLADEFILENAME-->
的刀片文件名注释到特定文件中。因此,当遇到任何错误时,您可以理解这是哪个文件。