可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
I'm trying to enable the debug for my app but it looks like I don't have any feedback.
The environment is set to local (in the .env file) and if I run
php artisan env
I get this
Current application environment: local
The debug config for my local env is set to true
return [
'debug' => true,
Also if I set in my main config file (app.php inside the config folder) the debug = true
I still have ho feedback that there is an error in the code.
I only have an empty page if there is an error in the code (as for debug = false)
What am I missing?
回答1:
I have worked around the issue by chmod -R 777 storage/
on my host machine (Mac OS X). On my guest machine (Ubuntu 14.04) chmod -R 777 storage/
did not change permissions actually.
回答2:
php artisan optimize
and if it still does not work delete the file storage/meta/compiled.php
as mentioned in a forum topic on Laracasts
I had the same problem and the artisan
command did the trick.
UPDATE
I found out that a nice way to workaround storage folder related issues is to set www-data as its owner.
I'm using two commands:
sudo chown $(whoami):www-data . -R
and
sudo chown www-data: storage -R
From Laravel 5.1 it may be necessary to do this last command on bootstrap folder too.
回答3:
I had a situation where I had the exact same symptom, some routes were not providing any feedback, just a white page, no error in the log no information at all.
Turns out, I was adding a new middleware, and I forgot to return $next($request)
from my handle method. This was even more frustrating, because this middleware did not apply to every route, so I assumed that there was an intermittent error that was being thrown but not displayed on these routes.
回答4:
As Blair said, it may turn out that you put some wrong code in the middleware or in 'Exceptions/Handler.php' e.g. :
if($e->getStatusCode()===404) { ... }
instead of
if($e instanceof NotFoundHttpException) { ... }
回答5:
Even on Windows needs to do : chmod -R 777 storage/
You can run it with Git Bash;
回答6:
Just for the sake of completeness, I had this issue when the error occurred in methods that used Model::findOrFail($someId)
. Replacing it with Model::find($someId)
displayed the error log.
回答7:
If the above answers didn't work for you, you may want to check the config files that you might have changed and start debugging from there.
In my case, the above solutions didn't work for me because the root cause of my problem was changing the timezone in config/app.php file (from laravel default UTC I changed it to EST5EDT). For some reason the timezone setting change prevents laravel from logging the errors in storage folder and I am getting blank screen (no whoops! error message). I changed the timezone to America/New_York instead and the error logs are working again.
Hope this helps.
回答8:
For me what worked perfectly was disabling hhvm in the Homestead.yaml file, then I did vagrant reload --provision and that was it!
回答9:
Also if you just installed lumen make sure you have renamed .env.example
to .env
in your main app directory as it won't work if your config is still named environment file is still named .env.example
.
回答10:
I actually solved the problem by un-commenting the line
Dotenv::load(__DIR__.'/../');
in bootstrap/app.php
.
So that it actually loads it before compiling it and caching it ,
well running php artisan optimize
does it for you , if you have Laravel (Not Lumen)
But if you look at their documentation it is commented out by default, i think they might have fixed it by now http://lumen.laravel.com/docs/installation.
回答11:
Go to config/app.php and if it is like this :
'debug' => env('APP_DEBUG', false),
Then it change to :
'debug' => env('APP_DEBUG', true),
this.
回答12:
I have faced same problem so i have checked handler.php file of exceptions folder where render function that have return value line is commented so page make blank.
public function render($request, Exception $exception)
{
//return parent::render($request, $exception);
}