我在GCP上有一个使用App Engine Ruby标准环境的rails应用程序(尽管这个问题可能适用于任何GCP应用程序(。起初,我试图进行设置,以便/*
由我的 Rails 应用程序的public
目录中的静态文件处理,否则回退到 Rails 应用程序以获取不匹配的 URL。这似乎是不可能的,但是我突然想到我可以将所有包含.
的 url 设置为由public
中的静态文件处理(在我的特定应用程序中,这将正常工作(。
我对static_files
和upload
的文档感到困惑(尤其是 https://cloud.google.com/appengine/docs/standard/ruby/config/appref#handlers_element 示例中有关/1
的部分,但这是我app.yaml
文件中handlers
部分。它不起作用,只是在我扔给它的所有路径上都是 404:
handlers:
- url: /*.*
static_files: public/1
upload: public/*
- url: /.*
secure: always
script: auto
这不起作用,因为所有路径都转到 rails 应用程序,然后在所有静态文件路径上 404s。
这个有相反的问题 - 静态文件工作,但没有路径转到rails应用程序:
handlers:
- url: /*.*
static_dir: public
- url: /.*
secure: always
script: auto
这个有效 - 对@gaefan中的一个选项进行了轻微调整
handlers:
- url: /(.*..*)
static_files: public/1
upload: public/.*..*
- url: /.*
secure: always
script: auto
对于您的第一个示例,我相信括号是必需的,您需要修复您的正则表达式。它应该是这样的:
handlers:
- url: /(.*..*)
static_files: public/1
upload: public/*
- url: /.*
secure: always
script: auto
对于第二个,您的正则表达式中有一个错误。 它应该是:
handlers:
- url: /.*..*
static_dir: public
- url: /.*
secure: always
script: auto