Reputation: 749
https://celbux-frontend-ng.ew.r.appspot.com/
I'm having troubles getting my Angular frontend to work with tim-icons / fa-icons, only after it is deployed to App Engine. I get the following errors:
Failed to decode downloaded font: https://celbux-frontend-ng.ew.r.appspot.com/nucleo.5987dd12fea78ce5f97a.woff2
home:1 OTS parsing error: invalid version tag
home:1 Failed to decode downloaded font: https://celbux-frontend-ng.ew.r.appspot.com/nucleo.f0b489a5dbbff08833d2.woff
home:1 OTS parsing error: invalid version tag
home:1 Failed to decode downloaded font: https://celbux-frontend.ng.ew.r.appspot.com/nucleo.b17a118e13e53558658b.ttf
home:1 OTS parsing error: invalid version tag
The fonts do work when I run the program locally, on http://localhost:4200. These errors only appear once I access the deployed website.
Pretty sure it's due to the how app.yaml handles routing, and I'm quite awful with this. Here is my current app.yaml.
runtime: python27
api_version: 1
threadsafe: true
handlers:
# Initial route that will serve up index.html, main entry point to your app
- url: /
secure: always
static_files: celbux-frontend-ng/index.html
upload: celbux-frontend-ng/.*
# Routing for typedoc, assets and favicon.ico to serve directly
- url: /((?:assets|docs)/.*|favicon\.ico)
secure: always
redirect_http_response_code: 301
static_files: celbux-frontend-ng/\1
upload: celbux-frontend-ng/.*
# Routing for any js files
- url: /(.*\.js)
secure: always
redirect_http_response_code: 301
static_files: celbux-frontend-ng/\1
upload: celbux-frontend-ng/.*\.js
# Routing for any css files
- url: /(.*\.css)
secure: always
redirect_http_response_code: 301
static_files: celbux-frontend-ng/\1
mime_type: text/css
upload: celbux-frontend-ng/.*\.css
# Routing for anything (wild card) after
- url: /.*
secure: always
static_files: celbux-frontend-ng/index.html
upload: celbux-frontend-ng/.*
So the question is, how can I get my routing here to work when it is deployed, so I do not get the OTS parsing errors & font decode errors.
Thanks!
Upvotes: 0
Views: 2444
Reputation: 749
Thanks to @Methkal Khalawi for leading me in the correct direction. The issue I was having with his solution is that all Angular routing would break. This new app.yaml config works perfectly for me.
Working webapp: https://celbux-frontend-ng.ew.r.appspot.com/
runtime: nodejs12
handlers:
- url: /
secure: always
static_files: celbux-frontend-ng/index.html
upload: celbux-frontend-ng/index.html
# Routing rules for resources, css, js, images etc. Any file with format filename.ext
- url: /(.*\.(.+))$
secure: always
static_files: celbux-frontend-ng/\1
upload: celbux-frontend-ng/(.*\.(.+))$
# Routing rule for Angular Routing
- url: /(.*)
secure: always
static_files: celbux-frontend-ng/index.html
upload: celbux-frontend-ng/index.html
Upvotes: -1
Reputation: 2477
try something like this in your app.yaml:
runtime: nodejs12
handlers:
- url: /
static_files: dist/index.html
upload: dist/index.html
- url: /(.*)
static_files: dist/\1
upload: dist/.*
The app.yaml must be at the root of your project
Upvotes: 1