У меня есть проект на Laravel 5, и я работаю с ним в офисе и дома. Работает нормально, но недавно дома перестал работать. Laravel покажет мне два ErrorException
file_put_contents(G:\project\storage\framework\views/751d8a0fd8a7d4138c09ceb6a34bb377aa2d6265.php):
failed to open stream: No such file or directory
и
file_put_contents(G:\project\storage\framework/sessions/aIXycR4LIAUBVIqZu0T590paOMIpV8vfZGIroEp0):
failed to open stream: No such file or directory
Я ищу решение проблемы в Google и нахожу информацию о правильных правах. Все советы касаются Linux, но я работаю с Windows в офисе и дома.
Когда я пытаюсь очистить кеш приложения и просмотреть кеш, ремесленник говорит со мной - ... очищено. Но данные кеша и представления присутствуют в хранилище.
Как я могу исправить эту проблему?
Заранее спасибо!
Ответы:
Лучший способ решить эту проблему - перейти в каталог
laravel/bootstrap/cache
и удалитьconfig.php
файл. или вы также можете переименовать его, какconfig.php.old
и ваша проблема будет исправлена. Удачного кодирования :-)источник
php artisan config:cache
восстановит пути для приложений. Когда мы запускаем приложение внутри бродячего бокса, пути, например, отличаются от путей для тестов в сумерках.Обычно вам следует запускать
php artisan config:cache
команду как часть процедуры развертывания в производственной среде. В качестве решения вашей проблемы я предлагаю вам воссоздать файл кеша для более быстрой загрузки конфигурации.Для этого выполните следующие команды Artisan в командной строке
php artisan cache:clear
php artisan config:cache
Вы можете программно выполнить команду, добавив к своим маршрутам следующее:
Route::get('/clear-cache', function() { $exitCode = Artisan::call('cache:clear'); $exitCode = Artisan::call('config:cache'); return 'DONE'; //Return anything });
А затем вызовите
clear-cache
маршрут из браузера.Надеюсь, это поможет.
источник
После некоторого исследования я понял - у меня очень похожие, но разные местоположения корневого проекта и его кеширование
/bootstrap/cache
. После очистки кеша запустился проект.источник
На самом деле я столкнулся с этой проблемой, когда переместил свой проект с сервера на локальный.
в
требуется четыре основных папки: кеш, сеансы, тестирование, просмотры
В моем случае сеансы отсутствовали, возможно, в gitignore.
Итак, я вручную создал папку сеанса и обновил браузер, и он работал.
Так что любую недостающую папку, если мы удалим эту проблему, можно будет решить.
источник
Проблема такого типа обычно возникает при миграции с одного сервера на другой, из одной папки в другую. Laravel сохраняет кеш и конфигурацию (имя файла), когда папка отличается от этой проблемы.
Решение Выполните следующую команду:
https://laravel.com/docs/5.6/configuration#configuration-caching
источник
Apache + WSL для Windows
Это глупая ошибка и другой ответ по сравнению с другими, но я добавлю его, потому что это случилось со мной.
Если вы используете WSL (linux bash в Windows) для управления своим приложением laravel, при этом используя Windows apache для запуска вашего сервера, то выполнение любых команд кеширования в wsl сохранит путь linux, а не путь Windows к сеансам и другим папкам. .
Решение
Просто запустите команды очистки кеша в PowerShell, а не в WSL.
Мне было достаточно.
источник
php artisan config:cache
команду в Windows, мой Linux больше не загружал веб-страницы приложения. Переход в папку bootstrap / cache и удаление там файла config.php разрешил это.Попробуйте использовать эти команды, которые помогли устранить эти ошибки.
путь \ проект \ хранилище \ фреймворк \ просмотры ...
путь \ проект \ хранилище \ рамки / сеансы ...
источник
В случае виртуального хостинга, когда у вас нет доступа к командной строке, просто перейдите в папку laravel / bootstrap / cache и удалите (или переименуйте) config.php, и все готово!
источник
Лучший способ решить эту проблему - перейти в каталог
laravel/bootstrap/cache
и удалить все файлы из кеша.Для этого выполните следующие команды Artisan в командной строке
1. php artisan config:clear
2. php artisan cache:clear
3. php artisan config:cache
На своей панели или на сервере вы можете выполнять команды, добавляя к своим маршрутам следующее:
Route::get('/clear-cache', function() { $run = Artisan::call('config:clear'); $run = Artisan::call('cache:clear'); $run = Artisan::call('config:cache'); return 'FINISHED'; });
А затем вызовите
www.yourdomain.com/clear-cache
маршрут из браузера.источник
изменение имени /bootstrap/cache/config.php на config.php.old не работает для меня, ни очистка кеша с помощью команд artisan
И по какой-то странной причине я не могу изменить разрешение для владельца в каталогах, поэтому в моем решении моя IDE (код Visual Studio) была запущена от имени администратора, и все работает.
Мой проект находится в пути F: / другого диска.
источник
Возможно, проблема связана с вашим файлом композитора. Вы можете попробовать:
composer update всегда восстанавливает composer.lock и устанавливает последние версии доступных пакетов на основе composer.json
composer dump-autoload ничего не загружает. Он просто восстанавливает список всех классов, которые необходимо включить в проект (autoload_classmap.php). Идеально, когда у вас есть новый класс внутри вашего проекта. В идеале вы выполняете composer dump-autoload -o для более быстрой загрузки ваших веб-страниц. Единственная причина, по которой он не установлен по умолчанию, заключается в том, что для его создания требуется немного больше времени (но это лишь слегка заметно)
источник
источник
Причина этой проблемы - файлы кеша на localhost. В соответствии с этим я пробовал несколько следующих вещей, чтобы очистить кеш в моем проекте, но каждый раз терпел неудачу.
Итак, я нашел решение этой проблемы после того, как все вышеперечисленные шаги потерпели неудачу, и это сработало для меня отлично. Я удалил файл cache.php в каталоге host_route / bootstrap / cache .
Думаю, этот ответ поможет решить вашу проблему.
источник
В моем случае это было не то, что можно было исправить с помощью команд php artisan. Проблема заключалась в правах доступа к папке / storage. Ошибка не проясняет это.
источник
Если вы запускаете laravel внутри докера, получите доступ к его файловой системе
Затем перейдите в корневой каталог проектов laravel. Убедитесь, что у вас есть внутри папки storage / framework :
И они должны быть доступны для чтения и записи.
источник
Я решил эту проблему, создав
storage\framework\sessions
папку.источник
У меня были аналогичные проблемы из-за .gitignore для
/storage
папки на первом компьютере, затем клонированного репозитория на втором компьютере, а laravel был пересмотрен для записи кеша сеансовИтак, создание папки вручную
/storage/sessions
может быть решением ..источник
решение, которое сработало для меня, - просто обслуживать приложение в качестве администратора, если вы
mac
илиlinux
использоватьsudo php artisan serve
CMD
как,adminstrator
а затем перейдите в каталог проекта и запуститеphp artisan serve
источник
Очистка содержимого
storage/framework/cache
помогла мне. Больше ничего не работало ...источник
Я использовал Laravel 8, это мое решение
Goto: хранилище / framework / cache / данные
каталога разрешений для данных - 777
Это сработало для меня
источник
Это творило для меня волшебство. chmod -Rf 0777 хранилище
источник