Маршрут Laravel не работает из-за имени файла

На прошлой неделе я столкнулся со странной проблемой с Laravel.

По сути, скажем, например, что я редактирую представление «view.blade.php» и контроллер «ViewController.php», и я постоянно обновляю страницу браузера, чтобы увидеть свои изменения.

Мое представление загружается функцией index() моего ViewController следующим образом:

public function index()
{
    return view('view');
}

Все работает, и я вижу, как мои изменения отражаются в браузере. Однако внезапно по какой-то причине страница становится белой, и мое представление перестает загружаться. Никаких ошибок в Laravel.log или консоли, ничего. Он просто показывает белую страницу.

Дело в том, что если я изменю имя моего файла представления на «view2.blade.php» и изменю свою индексную функцию, чтобы вместо этого возвращать «view2», страница загружается как обычно и работает отлично. Кажется, что имя файла - единственное, что мешает загрузке страницы.

Я попытался очистить все кеши с помощью следующих команд ремесленника:

php artisan route:cache
php artisan cache:clear
php artisan view:clear
php artisan config:cache

и выполнение php artisan optimize

Однако проблема все еще сохраняется. Я не модифицировал и не добавлял никаких файлов поставщиков.

Это случается не слишком часто, но это раздражает, и обычно это «волшебным образом» решается само собой, когда я оставляю его в покое на некоторое время, чтобы поработать с другим представлением/контроллером. Тем не менее, я просто хочу знать, есть ли у кого-нибудь еще эта проблема и есть ли где-нибудь решение.

Я определил свой маршрут так: Route::resource('view', 'ViewController');

Использование Laravel 5.4


person JonTan    schedule 09.08.2017    source источник


Ответы (2)


попробуйте очистить кэш браузера ctrl + F5

person ahmad altommy    schedule 09.08.2017
comment
Забыл указать, что тоже пробовал. Также протестировано в IE и Chrome и получило тот же результат. - person JonTan; 09.08.2017

Эй, попробуйте этот URL http://yoursite.dev/view/, обратите внимание, что вам нужно заменить yoursite.dev на ваш локальный домен.

Включив строку «представление» в функцию ресурса, вы создаете ресурс покоя относительно базового домена /view.

Вот ссылка на документы https://laravel.com/docs/5.4/controllers#resource-controllers

обратитесь к таблице Actions Handled By Resource Controller для подробного объяснения.

person miguelsolano    schedule 09.08.2017
comment
К сожалению (но и к счастью, лол), ошибка уже снова волшебным образом исправилась (буквально ничего не сделал, кроме перехода к редактированию другого представления, не редактировал никаких файлов, кроме нового файла представления и нового контроллера представления). Тем не менее, я попытался перейти прямо к URL-адресу, пока он был сломан, и он по-прежнему отображал белую страницу, без ошибок. - person JonTan; 09.08.2017
comment
Обратите внимание, что в вашем каталоге resources/views/ у вас должно быть имя файла view.blade.php, если вы собираетесь использовать вызов функции view('view');. Я уверен, что вы знаете это, просто бросьте это на всякий случай :) вы никогда не знаете, мы все смотрим на вещи (большой палец вверх) - person miguelsolano; 09.08.2017
comment
Ага, у меня такое :). Не волнуйтесь, я понимаю, самые досадные ошибки — это, безусловно, те, у которых простое решение просто пролетает над нашими головами, потому что мы думаем обо всем, кроме некоторых, таких как проверка имени или что-то в этом роде, ха-ха. - person JonTan; 09.08.2017
comment
Я также надеялся, что это было что-то простое, и я просто тупой. Однако я не понимаю, почему достаточно изменить имя файла, чтобы он внезапно заработал. Я также новичок в веб-разработке, поэтому стараюсь как можно быстрее понять все для работы. - person JonTan; 09.08.2017