将 Laravel 应用程序部署到 Google App Engine

Deploying Laravel app to Google App Engine

我正在尝试将我的 Laravel 7.29.3 应用程序部署到 Google App Engine 标准环境。我已按照位于此处 https://cloud.google.com/community/tutorials/run-laravel-on-appengine-standard 的指南进行操作。但是,当我查看我的部署时,我收到 View[Welcome] not found 错误。我的 app.yaml 文件如下所示:

runtime: php72

env_variables:
  ## Put production environment variables here.
  APP_KEY: YOUR_APP_KEY
  APP_STORAGE: /tmp
  VIEW_COMPILED_PATH: /tmp
  SESSION_DRIVER: cookie

这是一个非常简单的 yaml 文件,因为我只使用了欢迎视图和到联系页面的路由。请注意,我在此版本中没有使用任何数据库。请在下面查看我的路线:

<?php

use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {
    return view('welcome');
});

Route::post('contact', 'ContactFormController@ContactForm');

我也在这里查看了这个问题:View [welcome] not found 但我仍然遇到同样的错误。根据我对@sllopis 评论的理解,我需要将 welcome.blade.php 文件放在布局文件夹中。我已经这样做了,但仍然得到同样的错误。如有任何帮助,我们将不胜感激。

谢谢

我找到了解决办法。首先,您可以将处理程序添加到 app.yaml 文件中。它应该如下所示:

runtime: php72

handlers:
- url: /(.*\.(gif|png|jpg|css|js))$
  static_files: public/
  upload: public/.*\.(gif|png|jpg|css|js)$

- url: /.*
  secure: always
  redirect_http_response_code: 301
  script: auto

env_variables:
  ## Put production environment variables here.
  APP_KEY: YOUR_APP_KEY
  APP_STORAGE: /tmp
  VIEW_COMPILED_PATH: /tmp
  SESSION_DRIVER: cookie

来源:

然后您可以更新 config/filesystems.php 文件。您可以按照下面提供的示例添加新的文件系统。

'gcs' => [
    'driver' => 'gcs',
    'project_id' => env('GOOGLE_CLOUD_PROJECT_ID', 'your-project-id'),
    'key_file' => env('GOOGLE_CLOUD_KEY_FILE', null), // optional: /path/to/service-account.json
    'bucket' => env('GOOGLE_CLOUD_STORAGE_BUCKET', 'your-bucket'),
    'path_prefix' => env('GOOGLE_CLOUD_STORAGE_PATH_PREFIX', null), // optional: /default/path/to/apply/in/bucket
    'storage_api_uri' => env('GOOGLE_CLOUD_STORAGE_API_URI', null), // see: Public URLs below
    'visibility' => 'public', // optional: public|private
],

然后像这样更新您的默认文件系统:

'default' => env('FILESYSTEM_DRIVER', 'gcs'),

使用以下命令安装 Laravel Google 云存储包:

composer require superbalist/laravel-google-cloud-storage

来源:

您可以在这里进行 gcloud app deploygcloud app browse。如果您遇到更多错误,请执行 php artisan config:clear。这应该会清除任何缓存的配置。