我有一个create-react-app Build目录,把它放在Cloud Storage上,还添加了一个app.yaml文件:
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /
static_files: build/index.html
upload: build/index.html
secure: always
- url: /
static_dir: build
托管在app引擎上,瞧瞧 - 它的确有效!
但是,当 example-domain.com / 有效时, example-domain.com/abc 不会。我得到错误:找不到 在此服务器上找不到请求的URL / abc。
我尝试在处理程序网址中用“/.*”替换“/”,但结果返回一个空白页:(。
有什么建议吗? :)
答案 0 :(得分:1)
找到解决方案。当我使用static_dir时,会出现每个以该处理程序开头的url url 。鉴于每个静态文件都在build / static目录中,我只使用 url:/ static 来处理需要从该文件夹处理的任何内容。
Create-react-app会在build dir中创建几个.json文件,所以我只是单独指出它们,因为只有少数。
完成所有这些操作后,我可以使用 url:/.*来暗示任何其他网址应该只指向index.html页面。
这有效:(第一个处理程序可能是多余的)
runtime: python27
api_version: 1
threadsafe: true
handlers:
- url: /
static_files: build/index.html
upload: build/index.html
secure: always
- url: /static
static_dir: build/static
- url: /manifest.json
static_files: build/manifest.json
upload: build/manifest.json
- url: /asset-manifest.json
static_files: build/asset-manifest.json
upload: build/asset-manifest.json
- url: /service-worker.json
static_files: build/service-worker.json
upload: build/service-worker.json
- url: /pageIcon.png
static_files: build/pageIcon.png
upload: build/pageIcon.png
- url: /.*
static_files: build/index.html
upload: build/index.html
secure: always
答案 1 :(得分:0)
首先,您有/
的重复处理程序。你永远不会到达第二个处理程序。
您可以在处理程序中使用某些正则表达式提供您想要的任何类型的静态文件,如下所示:
- url: /(.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg|html))$
static_files: build/\1
upload: build/.*\.(ico|jpg|jpeg|png|gif|woff|ttf|otf|eot|svg|html)$
secure: always