1

Ich habe Probleme mit meiner app.yaml Datei - Ich habe eine Single-Page App (Angular2 App) auf AppEngine mit einer Python-Laufzeit, aber die Deep Links sind nicht angemessen weitergeleitet. Hier ist meine app.yaml Datei:AppEngine app.yaml Konfig für einzelne Seite apps

runtime: python27 
api_version: 1 
threadsafe: true 

skip_files: 
- ^(.*/)?app\.yaml 
- ^(.*/)?app\.yml 
- ^(.*/)?#.*# 
- ^(.*/)?.*~ 
- ^(.*/)?.*\.py[co] 
- ^(.*/)?.*/RCS/.* 
- ^(.*/)?\..* 
- ^(.*/)?tests$ 
- ^(.*/)?test$ 
- ^test/(.*/)? 
- ^COPYING.LESSER 
- ^README\..* 
- \.gitignore 
- ^\.git/.* 
- \.*\.lint$ 
- ^fabfile\.py 
- ^testrunner\.py 
- ^grunt\.js 
- ^node_modules/(.*/)? 
- ^src/(.*/)? 
- ^e2e/(.*/)? 

handlers: 
- url:/
    static_files: dist/index.html 
    upload: dist/index.html 

- url: /(.*) 
    static_files: dist/\1 
    upload: dist/(.*) 

ich folgende Fehlermeldung erhalten, wenn sie direkt an einen Deep-Link gehen:

enter image description here

Ich gehe davon aus, dass der zweite Handler ist, was es tut, aber Wie schreibe ich meine Handler, um alles an index.html zu senden, außer für Assets? Hier ist mein dist Verzeichnis:

enter image description here

Antwort

2

Ah ja, ich hatte das gleiche Problem. Hier ist die app.yaml, die ich verwende für eine Angular2 App auf App Engine:

runtime: python27 
api_version: 1 
threadsafe: true 

handlers: 

- url: /api/.* 
    script: main.app 

# All files that can be compiled in angular. Luckily, they all have suffixes. 
- url: /(.*\.(css|eot|gz|html|ico|js|map|png|svg|ttf|woff|woff2)) 
    static_files: ../client/dist/\1 
    upload: ../client/dist/(.*\.(css|eot|gz|html|ico|js|map|png|svg|ttf|woff|woff2)) 

# Site root, plus anything else, like deep urls 
# Make this be secure, otherwise oauth redirect won't work if they want to us with http:// 
- url: /.* 
    static_files: ../client/dist/index.html 
    upload: ../client/dist/index.html 
    secure: always 
    expiration: "15m" 

libraries: 
- name: webapp2 
    version: "2.5.2" 

Deep-Links zu handhaben, müssen Sie eine Catch-all Regel am Ende immer index.html dienen. Vorher benötigen Sie jedoch eine Regel, die all Ihren statischen Inhalt abbildet, ich mache meins durch das Vorhandensein eines Suffix, aber eine andere Möglichkeit besteht darin, alle Dateien und Verzeichnisse, die Ihre statischen Assets sind, zu benennen.

+0

das ist es genau, danke! –

Verwandte Themen