Я весь день пытался развернуть свое приложение Laravel 6 в стандартной среде Google App Engine, но, похоже, я просто застрял в том, как заставить работать кеш и некоторые локальные файлы.
Это ошибка, которую я получаю, когда пытаюсь загрузить любую страницу:
(1/1) InvalidArgumentException
Please provide a valid cache path.
in Compiler.php line 36
at Compiler->__construct(object(Filesystem), false)
in ViewServiceProvider.php line 92
at ViewServiceProvider->Illuminate\View\{closure}(object(Application), array())
in Container.php line 799
at Container->build(object(Closure))
in Container.php line 681
at Container->resolve('blade.compiler', array(), true)
in Application.php line 785
(...)
Я следил за всеми советами в этом вопрос, это руководство и это проблема, но мне казалось, что все помогло.
Как CACHE_DRIVER
, для удобства я пытаюсь просто использовать file
вместо database
или что-то еще. Итак, у моего app.yaml есть дополнительный env_variables
:
CACHE_DRIVER: file
SESSION_DRIVER: cookie
APP_STORAGE: /tmp
VIEW_COMPILED_PATH: /tmp
APP_SERVICES_CACHE: /tmp/services.php
APP_PACKAGES_CACHE: /tmp/packages.php
APP_CONFIG_CACHE: /tmp/config.php
APP_ROUTES_CACHE: /tmp/routes.php
Я знаю, что /tmp
папка является единственной доступной для записи папкой для Стандартная среда App Engine. Имея это в виду, я поместил указанное выше в app.yaml
и даже попытался переименовать папку /storage
в /tmp
. Я добавил в свой bootstrap/app.php
файл следующую строку:
$app->useStoragePath(env('APP_STORAGE', base_path() . '/tmp'));
В моих пакетах композитора я убедился, что в нем нет facade/ignition
. Кроме того, поскольку я не могу выполнить никакую команду после развертывания моего приложения в Google App Engine, в composer.json у меня есть:
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump"
],
"post-install-cmd": [
"composer dump-autoload",
"php artisan config:clear",
"php artisan view:clear",
"php artisan cache:clear"
]
Я также пытался поставить post-install-cmd
php artisan storage:link
, используя $app->useStoragePath(env('APP_STORAGE', base_path() . '/storage'));
и папку /storage
как сам storage
, но ничего не получилось.
У меня есть все дерево папок для кеширования в моей /temp
(или /storage
, если это правильно) папке:
/tmp
/framework
/cache
/data
/sessions
/testing
/views
/logs
/medialibrary
/temp
Кроме того, помимо того, что представления не отображаются, я заметил, что при попытке загрузить favicon.ico
, расположенный в папке /public
, он возвращает ошибку 500
. Я новичок в AppEngine, но даже читая все, что смог найти, я изо всех сил пытался заставить его работать. Я очень ценю любую помощь.
base_path()
? потому что он должен быть пустым (""
), чтобы переменная env отAPP_STORAGE
до/tmp
- person Juancki   schedule 10.08.2020