Google Cloud不提供我的静态文件

时间:2019-06-13 06:38:07

标签: laravel google-app-engine google-cloud-platform gcloud

我已经部署了laravel应用程序,该应用程序已在PC上成功运行。但是在部署到gcloud之后,我尝试访问它,并且它无法加载在“ public /”目录中创建的所有静态资产。我收到所有静态文件的404错误。使用Web Engine源代码视图,我检查了文件,所有文件在gcloud中都可用。请让我知道如何从gcloud提供我的静态文件。

请找到我的app.yaml文件。

runtime: php72

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

  ## Set these environment variables according to your CloudSQL configuration.
  DB_DATABASE: mydb
  DB_USERNAME: myuser
  DB_PASSWORD: my_password
  DB_SOCKET: "/cloudsql/myproject:us-central1:myconn"


runtime_config:
 document_root: public

1 个答案:

答案 0 :(得分:0)

有两种不同的AppEngine类型,它们的app.yam配置不同:

  1. 灵活:使用document_root配置和指向静态内容的app.php。
    您可以找到complete example of the app.yaml and app.php files on the github
    env:flex 可以将应用程序部署为灵活的环境。
    因此,如果您想使用灵活的环境,则app.yaml可能如下所示:
runtime: php72
env: flex
env_variables:
               ...
               ...
runtime_config:
    document_root: public
  1. 标准:使用http_handlers handlers
    将目录作为静态资源投放的示例:
runtime: php72
handlers: 
- url: /public
  static_dir: public

另一个示例,要从静态目录投放内容

runtime: php72
handlers: 
- url: /
  static_dir: public

More php app.yaml directory configuration handlers examples

  

配置目录始终相对于您的app.yaml文件位置