Meine Anwendung enthält das Angular- und PHP-Yii2-Framework.
Ich habe meine Anwendung auf der App Engine der Google Cloud-Plattform gehostet.
Hier ist der Screenshot meines Codes und des Dateicodes app.yaml.
threadsafe: true
runtime: php55
api_version: 2
handlers:
# The root URL (/) is handled by the Go application.
# No other URLs match this pattern.
- url: /(.+)
static_files: \1
upload: (.*)
- url: /web-service/*
script: web-service/yii
- url: /
static_files: index.html
upload: index.html
Meine Yii2-Bibliothek ist im Webdienstverzeichnis verfügbar. Wenn ich die Rest-API vom Postboten aus aufrufe, wird die Fehlermeldung „404: Seite nicht gefunden“ zurückgegeben.
was fehlt mir in der app.yaml
Datei?
Helfen Sie mir, dieses Problem zu lösen.
Mein API heißt ungefähr so.
https://abcxyz.appspot.com/web-service/web/user-registration/login-user
Antwort1
Die Reihenfolge Ihrer URL-Handler ist nicht korrekt.
GAE führt dies von oben nach unten aus. Ihr erster Handler wird alles abgleichen. Er wird die anderen beiden nie erreichen.
Sie müssen die Reihenfolge in Ihrer app.yaml ändern:
threadsafe: true
runtime: php55
api_version: 2
handlers:
# The root URL (/) is handled by the Go application.
# No other URLs match this pattern.
- url: /
static_files: index.html
upload: index.html
- url: /web-service/*
script: web-service/yii
- url: /(.+)
static_files: \1
upload: (.*)
Es wird empfohlen, immer das Breiteste unten und das Strengste oben zu haben.
Weitere Informationen finden Sie im entsprechenden Abschnitt in der GAE app.yaml-Dokumentation.